Трабл с JavaScript

Статус
В этой теме нельзя размещать новые ответы.
Ну вот рендер до него доходит в последнюю очерендь - после того как будут загружены все картинки, а мне нужно что бы он выполнялся до их загрузки

Это бред. Рендер начиная подгружать картинку (видя тэг в коде) идет дальше, не дожидаясь, пока она загрузится.
Единственное что мне видится может быть, это если на сайте оочень много картинок (допустим 200), все png'шные и браузер просто подвисает при загрузке.
 
Это бред. Рендер начиная подгружать картинку (видя тэг в коде) идет дальше, не дожидаясь, пока она загрузится.
Единственное что мне видится может быть, это если на сайте оочень много картинок (допустим 200), все png'шные и браузер просто подвисает при загрузке.

Да нет их не так уж и много и они не PNG'шные, вобщем вот конкретно сайт где это меню - Для просмотра ссылки Войди или Зарегистрируйся, самое что интересно что если клацнуть на меню пока картинки не загрузились то ява скрипт то срабатывает :(
 
Да нет их не так уж и много и они не PNG'шные, вобщем вот конкретно сайт где это меню - Для просмотра ссылки Войди или Зарегистрируйся, самое что интересно что если клацнуть на меню пока картинки не загрузились то ява скрипт то срабатывает :(

Сделай объявление функции в <header><script></script></header>, убери в ней eval'ы и если не поможет засунь вызвов функции JS не в onload, а первой строчкой в body. Т.е.
<body>
<script>JS('menu1','image1');</script>
....

Кстати, делай не так: <a href="javascript:JS('menu2','image1');">, а вот так: <a href="#" onclick="JS('menu2','image1');return false">
 
Сделай объявление функции в <header><script></script></header>, убери в ней eval'ы и если не поможет засунь вызвов функции JS не в onload, а первой строчкой в body. Т.е.
<body>
<script>JS('menu1','image1');</script>
....

Кстати, делай не так: <a href="javascript:JS('menu2','image1');">, а вот так: <a href="#" onclick="JS('menu2','image1');return false">

Попробовал сделать изменения на локальной машине - ничего не изменилось :(
 
  • Заблокирован
  • #15
Должно работать во всех браузерах. У меня в "большой тройке" отрабатывает корректно.
<script type="text/javascript">
function init() {
// если функция уже была вызвана, выход
if (arguments.callee.done) return;

// помечаем, что вызвана
arguments.callee.done = true;

// kill the timer
if (_timer) {
clearInterval(_timer);
_timer = null;
}

// тут выполняем всякие важные вещи, которые
// нужно выполнять еще до окончания загрузки
// всех картиноки прочих внешних файлов


// ---
};

/* for Mozilla */
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
if (this.readyState == "complete") {
init(); // call the onload handler
}
};
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
var _timer = setInterval(function() {
if (/loaded|complete/.test(document.readyState)) {
init(); // call the onload handler
}
}, 10);
}

/* for other browsers */
window.onload = init;
</script>
Для просмотра ссылки Войди или Зарегистрируйся
 
Вот то что нада!!! так сказать Бинго!!!! выражаю есче так спасибо. Всё тему можно закрывать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху