Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.05.2012, 21:09
Аспирант
Отправить личное сообщение для rori Посмотреть профиль Найти все сообщения от rori
 
Регистрация: 22.05.2012
Сообщений: 34

какой аналог у document.write?
есть у меня сайт и форум, на форуме есть функция - с помощью скрипта вставит на сайт вывод последних нескольких тем форума на сайт с помощью такого скрипта:

<script>//<!--
var forum='grinata.getbb.ru'; //Имя форума (укажите свой)
var num='5'; //Количество последних тем
var max='100'; // Максимальная длина темы
var ignore='';  // Список форумов, которые не нужно выводить (например закрытые) через запятую, если не нужно оставьте ''
var only=''; //  // Список форумов, которые НУЖНО выводить  и ТОЛЬКО ИХ через запятую, если не нужно оставьте ''
var type='0'; // Если изменить на еденицу, то будут выводится только топики со статусом "Объявление"
var show_first_post='0'; // показывать первое сообщение топика (0=нет,1=да)
var show_replies='0'; // показывать количество ответов (0=нет,1=да)
var attachments='0'; //показывать вложения (0=нет,1=да)
document.write('<script language=JavaScript src=http://'+forum+'/recent.php?set=1&num='+num+'&type='+type+'&max='+max+'&ignore='+ignore+'&only='+only+'&attachments='
+attachments+'&show_replies='+show_replies+'&show_first_post='+show_first_post+'></'+'script>');
--></script>


мне нужно, чтобы данный скрипт выполнялся в последнюю очередь, после загрузки все страницы, я сделал так:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<div id="eee"></div>
<script>//<!--
$(document).ready(function() {
var forum='grinata.getbb.ru'; //Имя форума (укажите свой)
var num='5'; //Количество последних тем
var max='100'; // Максимальная длина темы
var ignore='';  // Список форумов, которые не нужно выводить (например закрытые) через запятую, если не нужно оставьте ''
var only=''; //  // Список форумов, которые НУЖНО выводить  и ТОЛЬКО ИХ через запятую, если не нужно оставьте ''
var type='0'; // Если изменить на еденицу, то будут выводится только топики со статусом "Объявление"
var show_first_post='0'; // показывать первое сообщение топика (0=нет,1=да)
var show_replies='0'; // показывать количество ответов (0=нет,1=да)
var attachments='0'; //показывать вложения (0=нет,1=да)
$('#eee').append('<script language=JavaScript src=http://'+forum+'/recent.php?set=1&num='+num+'&type='+type+'&max='+max+'&ignore='+ignore+'&only='+only+'&attachments='
+attachments+'&show_replies='+show_replies+'&show_first_post='+show_first_post+'></'+'script>');
});
--></script>


и контент с темами не появляется вообще, если вместо
<script language=JavaScript src=http://'+forum+'/recent.php?set=1&num='+num+'&type='+type+'&max='+max+'&ignore='+ignore+'&only='+only+'&attachments='
+attachments+'&show_replies='+show_replies+'&show_first_post='+show_first_post+'></'+'script>

вставить слово любое, то оно выводится как надо - после загрузки страницы.
Вопрос, почему скрипт во втором варианте не выполняется а в первом все ок?
Или как сделать выполнения данного скрипта в последнюю очередь, после загрузки всей страницы?

берет скрипт контент вот осюда (форум на phpbb)
var i=0
<!-- BEGIN topicrow -->
i=i+1
document.writeln(i)
document.writeln('<a href="{topicrow.U_TOPIC}" >{topicrow.TOPIC_TITLE}</a>{topicrow.TOPIC_REPLIES}<br />\n');

   <!-- BEGIN first_post_text -->
   document.writeln('{topicrow.first_post_text.TOPIC_FIRST_POST_TEXT}<br />\n');
      <!-- BEGIN attachment -->
      document.writeln('{topicrow.first_post_text.attachment.DISPLAY_ATTACHMENT}<br />\n');
      <!-- END attachment -->
   document.writeln('<br />\n');
   <!-- END first_post_text -->
document.writeln('</li>');
<!-- END topicrow -->

Последний раз редактировалось rori, 23.05.2012 в 00:10.
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2012, 21:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 23.05.2012, 00:32
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Попробуйте на основе этого:

<script>
alert(1);

window.onload = function () {
  var str = '<script>alert(2)</sc' +'ript> ';
  document.write(str);
}

alert(3);
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 23.05.2012, 00:54
Аспирант
Отправить личное сообщение для rori Посмотреть профиль Найти все сообщения от rori
 
Регистрация: 22.05.2012
Сообщений: 34

Сообщение от bes Посмотреть сообщение
Попробуйте на основе этого:

<script>
alert(1);

window.onload = function () {
  var str = '<script>alert(2)</sc' +'ript> ';
  document.write(str);
}

alert(3);
</script>
сделал, сначала вылезает аллерт 1, потом 3, а потом вместо моей страницы грузит контент отдельно, потому, что врайт работает только при загрузке страницы, получается, что старницу в данном случае я какбы гружу 2 раза, первый раз моя страница, а второй раз уже только контент. Нужно както заменить врайт, чем-то другим. Вот если, что ссылка http://грината.рф

Последний раз редактировалось rori, 23.05.2012 в 00:59.
Ответить с цитированием
  #5 (permalink)  
Старый 23.05.2012, 10:47
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Если я правильно понял, то вам нужно после загрузки документа вставить нужные данные в нужный контейнер.


<div id="myDiv"></div>

<script>
alert(1);

window.onload = function () {
  var a = 'Hello, ';
  var str = a + 'world!';
  myDiv.innerHTML = str;
}

alert(3);
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 23.05.2012, 11:30
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

bes,
со скриптами innerHTML не прокатит
Ответить с цитированием
  #7 (permalink)  
Старый 23.05.2012, 12:23
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Раед
bes,
со скриптами innerHTML не прокатит
Как я понял, здесь не нужно, чтобы сразу выполнился скрипт, здесь требуется просто вывести необходимые данные в виде ссылок на последние темы.
Ответить с цитированием
  #8 (permalink)  
Старый 23.05.2012, 13:12
Аспирант
Отправить личное сообщение для rori Посмотреть профиль Найти все сообщения от rori
 
Регистрация: 22.05.2012
Сообщений: 34

Сообщение от bes Посмотреть сообщение
Как я понял, здесь не нужно, чтобы сразу выполнился скрипт, здесь требуется просто вывести необходимые данные в виде ссылок на последние темы.
<div id="myDiv"></div>

<script>
alert(1);
window.onload = function () {
var forum='grinata.getbb.ru'; //Имя форума (укажите свой)
var num='5'; //Количество последних тем
var max='100'; // Максимальная длина темы
var ignore='';  // Список форумов, которые не нужно выводить (например закрытые) через запятую, если не нужно оставьте ''
var only=''; //  // Список форумов, которые НУЖНО выводить  и ТОЛЬКО ИХ через запятую, если не нужно оставьте ''
var type='0'; // Если изменить на еденицу, то будут выводится только топики со статусом "Объявление"
var show_first_post='0'; // показывать первое сообщение топика (0=нет,1=да)
var show_replies='0'; // показывать количество ответов (0=нет,1=да)
var attachments='0'; //показывать вложения (0=нет,1=да)
var a = 'Hello, ';
var str = a + '<script language=JavaScript src=http://'+forum+'/recent.php?&num='+num+'&type='+type+'&max='+max+'&ignore='+ignore+'&only='+only+'&attachments='
+attachments+'&show_replies='+show_replies+'&show_first_post='+show_first_post+'></'+'script>';
myDiv.innerHTML = str;
}
alert(3);
</script>


Но у меня на сайте даже хеллоу не появляется, просто пусто в этом месте, (походу этот скрипт только врайтом вызывается почемуто),
ничего не выводит таким способом((

может, что-то тут надо менять

var i=0
<!-- BEGIN topicrow -->
i=i+1
document.writeln(i)
document.writeln('<a href="{topicrow.U_TOPIC}" >{topicrow.TOPIC_TITLE}</a>{topicrow.TOPIC_REPLIES}<br />\n');
 
   <!-- BEGIN first_post_text -->
   document.writeln('{topicrow.first_post_text.TOPIC_FIRST_POST_TEXT}<br />\n');
      <!-- BEGIN attachment -->
      document.writeln('{topicrow.first_post_text.attachment.DISPLAY_ATTACHMENT}<br />\n');
      <!-- END attachment -->
   document.writeln('<br />\n');
   <!-- END first_post_text -->
document.writeln('</li>');
<!-- END topicrow -->

Последний раз редактировалось rori, 23.05.2012 в 13:21.
Ответить с цитированием
  #9 (permalink)  
Старый 23.05.2012, 13:32
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

hello-то у вас на сайте выводится (вы случайно не через FF смотрите), имелось ввиду выводить в контейнер не содержимое в тегах <script></script>, а нужное вам содержимое.
Берите ваши переменные и помещайте их в строку, потом эту строку в innerHTML.
Вот пример, когда ссылка на yandex появится после загрузки основного содержимого.
<div>content</div>
<div id="myDiv"></div>

<script>
alert(1);

window.onload = function () {
  var a = '1) ';
  var str = a + '<a href="http://ya.ru" target="blank">yandex</a>';
  myDiv.innerHTML = str;
}

alert(3);
</script>
Ответить с цитированием
  #10 (permalink)  
Старый 23.05.2012, 13:49
Аспирант
Отправить личное сообщение для rori Посмотреть профиль Найти все сообщения от rori
 
Регистрация: 22.05.2012
Сообщений: 34

Сообщение от bes Посмотреть сообщение
hello-то у вас на сайте выводится (вы случайно не через FF смотрите), имелось ввиду выводить в контейнер не содержимое в тегах <script></script>, а нужное вам содержимое.
Берите ваши переменные и помещайте их в строку, потом эту строку в innerHTML.
Вот пример, когда ссылка на yandex появится после загрузки основного содержимого.
<div>content</div>
<div id="myDiv"></div>

<script>
alert(1);

window.onload = function () {
  var a = '1) ';
  var str = a + '<a href="http://ya.ru" target="blank">yandex</a>';
  myDiv.innerHTML = str;
}

alert(3);
</script>
да через фаерфокс
не совсем понял, что вы имели ввиду, про содержимое, я не силен в этом, покажите как нужно поместить именно мое содержимое?

Последний раз редактировалось rori, 23.05.2012 в 13:53.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с созданной страницей через document.write San4az Общие вопросы Javascript 2 26.04.2010 14:13
onResize IFRAME vah-smile Элементы интерфейса 8 04.11.2009 17:07
document.write sKanta Events/DOM/Window 2 13.09.2009 18:28
Ремонт часов)) SunYang Общие вопросы Javascript 7 07.08.2008 12:18
Как вставить событие внутрь document.write Vivasvan Events/DOM/Window 8 13.06.2008 20:02