document.write по событию
Здравствуйте!
Есть код со стороннего сайта:
<!-- вставка туров -->
<script type='text/javascript'>
document.write("<script language='JavaS");
document.write("cript' sr");
document.write("c='http://www.rozalist.ru/transl_tours/js_translation.php?");
document.write(document.location.search.substr(1));
document.write("&script_name=countries&agencymail=xxx@inbox.ru");
document.write("'></sc");
document.write("ript>");
</script>
<!-- конец вставка туров -->
Я хочу у себя на сайте сделать так что бы он выполнялся при определенном событии но в этом случае он у меня отрабатывает так что все окно сайта становиться белым и на этом фоне делается нужный вывод...если я его вставляю в страницу то все работает нормально не нарушая внешний вид сайта. Пожалуйста помогите разобраться. |
/google document.write
|
в гугле написано, что нужно делать через innerHTML но через него не отрабатывает скрипт
|
при событии выполняйте следующий код:
script = document.createElement('script');
script.type = "text/javascript";
script.src = "http://www.rozalist.ru/transl_tours/js_translation.php?"+document.location.search.substr(1)+"&script_name=countries&agencymail=xxx@inbox.ru";
document.getElementByTagName('head')[0].appendChild(script);
|
Сделал вот так:
<a href="#" onclick="test()">test</a>
function test()
{
script = document.createElement('script');
script.type = "text/javascript";
script.src = "c='http://www.rozalist.ru/transl_tours/js_translation.php?"+document.location.search.substr(1)+"&script_name=countries&agencymail=xxx@inbox.ru";
document.getElementsByTagName('head')[0].appendChild(script);
}
Ничего не происходит. В консоль хрома попадает вот это: Код:
GET http://xxx.ru/c='http://www.rozalist.ru/transl_tours/js_translation.php?&script_name=countries&agencymail=xxx@inbox.ru 404 (Not Found) |
А, ну да, забыл там 1 кусочек убрать.
Исправил пост, попробуйте ещё раз
script = document.createElement('script');
script.type = "text/javascript";
script.src = "http://www.rozalist.ru/transl_tours/js_translation.php?"+document.location.search.substr(1)+"&script_name=countries&agencymail=xxx@inbox.ru";
document.getElementByTagName('head')[0].appendChild(script);
|
Теперь ошибок нет. Загрузка со стороннего сайта идет, но ничего не появляется на странице.
|
Цитата:
|
должен выводиться список стран
|
innerHTML = '' "; используй, если я понял в чем проблема |
![]() 1. За*я в head его подключать если сказано что скрипт что=то выводит. Ясен х*й , что ни*я не работает. 2. Скорее всего в том скрипте, что передаётся тоже используется document.write, по этому подключить его где-то ещё тоже не вариант, работать всё равно не будет. Надо делать в таком случае свой перехватчик write. |
Цитата:
document.write = function(s) {
document.getElementById('writeOut').innerHTML += s;
}
?? |
Тира того, только функция должна накапливать поступающие данные и только после полной загрузки делать innerHTML, ибо код может подаваться кусками(как в первом посте).
|
И как по вашему ф-ия должна определять, когда закончится вывод?
|
Цитата:
|
melky,
Так что ли?
document.write = function(s) {
document.write.timer && clearTimeout(document.write.timer);
document.write.bufer || (document.write.bufer = '');
document.write.bufer+=s;
document.write.timer = setTimeout(function(){document.getElementById('writeOut').innerHTML+=document.write.bufer},1000);
}
|
Цитата:
как-то так : код писался на коленке и не тестился!
var target = document.body, // куда слить баффер.
old_write = document.write, // на всякий
buff = ""; // сам баффер
document.write = function(text){
buff += text;
};
document.addEventListener("DOMContentLoaded", function rollback(){
document.write = old_write; // возвращаем на место старый врайт
target.insertAdjacentHTML("afterbegin", buff); // вставляем текст.
document.removeEventListener("DOMContentLoaded", rollback, false); // удаляем обработчик, ибо он уже не нужен.
}, false);
|
melky,
Не маньячим. Человеку нужен вывод по событию, и скорее всего, по клику там и т.п. А вы ему своё onDOMContentLoaded суёте. P. S. Свой пост подправил. Там забыл таймер переменной присвоить |
Цитата:
|
| Часовой пояс GMT +3, время: 14:07. |