• Вы не зашли.

#1 2009-09-03 21:12:25

objMihail
Начинающий
Зарегистрирован: 2007-11-20
Сообщ.: 25
Профиль  http://gerontology-explorer.narod.ru/ - Вебсайт

Можно ли получить body.onload до загрузки счетчика?

У меня на событие body.onload срабатывает некоторый скрипт на страницах и нужно, чтобы он срабатывал как можно быстрее, но дело в том, что это событие ожидает загрузки счетчика, который иногда и секунд по 10 загружается. Выглядит в результате всё очень плохо.

Подскажите пожалуйста, реально ли так сделать средствами JS, html, чтобы счетчик загружался уже после срабатывания body.onload? Может можно как-нибудь инициировать его загрузку из конца метода-обработчика этого события?

Я пробовал innerHTML использовать таким образом, но он не выполняет скрипты, а только html. Можно, конечно, использовать его как-то и для скриптов, разными нестандартными путями, но получится совсем сложно и я не уверен будет ли статистика вообще работать после этого.

Неактивен

 

#2 2009-09-05 08:58:27

Admin
Администратор
Зарегистрирован: 2007-08-21
Сообщ.: 495
Профиль

Re: Можно ли получить body.onload до загрузки счетчика?

Например, Вы можете код счетчика разместить в JS-функции, в которой разместите сначала Ваш скрипт, а затем скрипт счетчика.

Неактивен

 

#3 2009-09-08 20:57:30

objMihail
Начинающий
Зарегистрирован: 2007-11-20
Сообщ.: 25
Профиль  http://gerontology-explorer.narod.ru/ - Вебсайт

Re: Можно ли получить body.onload до загрузки счетчика?

Спасибо, попробовал. Но всё портит 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)

Неактивен

 

#4 2009-09-09 15:22:08

Admin
Администратор
Зарегистрирован: 2007-08-21
Сообщ.: 495
Профиль

Re: Можно ли получить body.onload до загрузки счетчика?

Разместите код счетчика в конец Вашего скрипта.
document.write в коде счетчика не должен ничего уничтожать.

Неактивен

 

#5 2009-09-10 03:16:34

objMihail
Начинающий
Зарегистрирован: 2007-11-20
Сообщ.: 25
Профиль  http://gerontology-explorer.narod.ru/ - Вебсайт

Re: Можно ли получить body.onload до загрузки счетчика?

Вот я http://gerontology-explorer.narod.ru/test.htm сделал такой страницы - там должно быть слово "Текст", а после выполнения кода счетчика его там нет smile
Вот код:

Код:

<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>

Неактивен

 

#6 2009-09-10 11:30:48

Admin
Администратор
Зарегистрирован: 2007-08-21
Сообщ.: 495
Профиль

Re: Можно ли получить body.onload до загрузки счетчика?

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;
    }

Неактивен

 

#7 2009-09-17 08:39:19

objMihail
Начинающий
Зарегистрирован: 2007-11-20
Сообщ.: 25
Профиль  http://gerontology-explorer.narod.ru/ - Вебсайт

Re: Можно ли получить body.onload до загрузки счетчика?

Сделал код счетчика полностью на appendChild'ах, всё работает прекрасно. Спасибо за подсказки.

Неактивен

 

Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Модифицирован PunBB.ru