22.05.2012, 21:09
|
Аспирант
|
|
Регистрация: 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.
|
|
22.05.2012, 21:21
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
23.05.2012, 00:32
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Попробуйте на основе этого:
<script>
alert(1);
window.onload = function () {
var str = '<script>alert(2)</sc' +'ript> ';
document.write(str);
}
alert(3);
</script>
|
|
23.05.2012, 00:54
|
Аспирант
|
|
Регистрация: 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.
|
|
23.05.2012, 10:47
|
|
Профессор
|
|
Регистрация: 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>
|
|
23.05.2012, 11:30
|
|
''
|
|
Регистрация: 11.12.2011
Сообщений: 636
|
|
bes,
со скриптами innerHTML не прокатит
|
|
23.05.2012, 12:23
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Раед
|
bes,
со скриптами innerHTML не прокатит
|
Как я понял, здесь не нужно, чтобы сразу выполнился скрипт, здесь требуется просто вывести необходимые данные в виде ссылок на последние темы.
|
|
23.05.2012, 13:12
|
Аспирант
|
|
Регистрация: 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.
|
|
23.05.2012, 13:32
|
|
Профессор
|
|
Регистрация: 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>
|
|
23.05.2012, 13:49
|
Аспирант
|
|
Регистрация: 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.
|
|
|
|