какой аналог у 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, время: 00:14. |