У меня на событие body.onload срабатывает некоторый скрипт на страницах и нужно, чтобы он срабатывал как можно быстрее, но дело в том, что это событие ожидает загрузки счетчика, который иногда и секунд по 10 загружается. Выглядит в результате всё очень плохо.
Подскажите пожалуйста, реально ли так сделать средствами JS, html, чтобы счетчик загружался уже после срабатывания body.onload? Может можно как-нибудь инициировать его загрузку из конца метода-обработчика этого события?
Я пробовал innerHTML использовать таким образом, но он не выполняет скрипты, а только html. Можно, конечно, использовать его как-то и для скриптов, разными нестандартными путями, но получится совсем сложно и я не уверен будет ли статистика вообще работать после этого.
Неактивен
Спасибо, попробовал. Но всё портит document.write в коде счетчика - уничтожает всё содержимое страницы и на ней остаётся только счетчик.
Да и в коде счетчика имеется не только скрипт, а и html, его приходится удалять. Вот, что я вставляю в конец своего скрипта. Без символов комментариев это это код невидимого счетчика полученный с вашего сайта:
//<!-- InetLog --> //<script language="javascript"> i=Math.random();w=screen.width;h=screen.height; clr=screen.colorDepth; if(navigator.cookieEnabled) ck = "Y"; else ck = "N"; document.write('<a href="http://inetlog.ru/" target="_top"><img width=1 height=1 src="http://inetlog.ru/counter/?i='+i+'&cid=100&r='+escape(document.referrer)+'&sid=4232&ck='+ck+'&res='+w+'x'+h+'&clr='+clr+'&pg='+escape(window.location.href)+'" alt="InetLog.ru - статистика сайта" border=0></a>') //</scr ipt><a href="http://inetlog.ru" title="статистика"><img border=0 width=1 height=1 src="http://inetlog.ru/img/del.gif" alt="статистика"></a> //<!-- /InetLog -->
Может, вы что-то другое имели ввиду?
Отредактированно objMihail (2009-09-08 20:59:04)
Неактивен
Вот я http://gerontology-explorer.narod.ru/test.htm сделал такой страницы - там должно быть слово "Текст", а после выполнения кода счетчика его там нет
Вот код:
<html> <head> <script language=javascript> // Вызывается из body onload. function OnLoadEx() { // Мой код. // Код счетчика. //<!-- InetLog --> //<script language="javascript"> i=Math.random();w=screen.width;h=screen.height; clr=screen.colorDepth; if(navigator.cookieEnabled) ck = "Y"; else ck = "N"; document.write('<a href="http://inetlog.ru/" target="_top"><img width=1 height=1 src="http://inetlog.ru/counter/?i='+i+'&cid=100&r='+escape(document.referrer)+'&sid=4232&ck='+ck+'&res='+w+'x'+h+'&clr='+clr+'&pg='+escape(window.location.href)+'" alt="InetLog.ru - статистика сайта" border=0></a>') //</scr ipt><a href="http://inetlog.ru" title="статистика"><img border=0 width=1 height=1 src="http://inetlog.ru/img/del.gif" alt="статистика"></a> //<!-- /InetLog --> } </script> </head> <body onload="OnLoadEx()"> <p>Текст</p> </body> </html>
Неактивен
objMihail
Действительно, onload - имеет более высокий приоритет по выводу содержимого document.
А что Вам мешает обойтись без onload? Для каких целей используется скрипт?
Спрашиваю потому, что рассматриваю возможность разместить скрипт в теле или в заголовке страницы.
Или же можно модифицировать код счетчика, чтобы он корректно отрабатывал в onload.
Например,
createCounter: function() {
if(!this.counter) {
var self = this;
this.counter = document.createElement('div');
document.body.appendChild(this.counter);
this.counter.innerHTML = 'код счетчика';
};
return this.counter;
}
Неактивен
Сделал код счетчика полностью на appendChild'ах, всё работает прекрасно. Спасибо за подсказки.
Неактивен