какой аналог у 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 --> |
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Попробуйте на основе этого:
<script> alert(1); window.onload = function () { var str = '<script>alert(2)</sc' +'ript> '; document.write(str); } alert(3); </script> |
Цитата:
|
Если я правильно понял, то вам нужно после загрузки документа вставить нужные данные в нужный контейнер.
<div id="myDiv"></div> <script> alert(1); window.onload = function () { var a = 'Hello, '; var str = a + 'world!'; myDiv.innerHTML = str; } alert(3); </script> |
bes,
со скриптами innerHTML не прокатит |
Цитата:
|
Цитата:
<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 --> |
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> |
Цитата:
не совсем понял, что вы имели ввиду, про содержимое, я не силен в этом, покажите как нужно поместить именно мое содержимое? |
Если FF, то почитайте http://javascript.ru/forum/events/28...-rabotaet.html
Все операции c переменными производите в коде обработчика onload, в строку помещайте только то, что хотите видеть при выводе. Для примера вынес используемый адрес ссылки в отдельную переменную. <div>content</div> <div id="myDiv"></div> <script> alert(1); window.onload = function () { var number = '1) '; var address = 'http://ya.ru'; var str = number + '<a href="' + address + '" target="blank">yandex</a>'; myDiv.innerHTML = str; } alert(3); </script> |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Кстати каким образом вы определяете, какие ссылки выводить (наверное php-код у вас страницу формирует, так и передайте в страницу эти сслыки и их имена)? Я для примера просто создал массив и использовал ссылки оттуда. <div>content</div> <div id="myDiv"></div> <script> window.onload = function () { var mas = [ 'http://www.yandex.ru', 'http://www.google.ru' ]; var length = mas.length; var str = ''; for (var i = 0; i < length; i++) { var k = i + 1; var str = str + k + '. <a href="' +mas[i] + '" target="_blank">link ' + k + '</a><br>'; } myDiv.innerHTML = str; } </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 --> попробывал через джиквери <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <div id="eee"></div> <script type="text/javascript"> $(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").load("http://grinata.getbb.ru/recent.php"); }); </script> но не могу понять почему не работает, ведь если вставить отдельно в браузер http://grinata.getbb.ru/recent.php то данные есть |
Странный php-скрипт вывод делает, даже без тегов <script></script>, и как видно заточен этот скрипт именно под вывод при помощи document.write.
Для использования предложенного мною способа, необходимо передать на страницу из php-скрипта два массива, в одном массиве ссылки (значения атрибутов href, значение одного из них представлено у вас как {topicrow.U_TOPIC}), в другом имена этих ссылок ({topicrow.TOPIC_REPLIES}). |
Цитата:
|
Цитата:
|
Когда в строке поиска набирается grinata.getbb.ru/recent.php, то сервер логично возвращает результат выполнения скрипта в этом php-файле, то есть просмотреть, что там у вас в этом файле, кроме того, что предоставлено на вывод, я не могу.
Ваш php-скрипт, используя свои механизмы, получает ссылки на последние темы (если, конечно, он именно их получает), вам придётся изучить как это оно там всё происходит. И в принципе, поняв как получаются эти ссылки, я думаю, вы должны понять, что смысла передавать в документ javascript-код, который будет выводить ссылки о последних темах, нет, так как вы можете весь вывод прописать прямо в php-коде. |
Цитата:
|
var str = "20"; var a = 5; document.write(str + a + "<br/>"); document.write(str - a + "<br/>"); document.write(str * "2" + "<br/>"); document.write(str / 2 + "<br/>"); |
Часовой пояс GMT +3, время: 10:25. |