Событие window.onload не запускается в IE8 - PullRequest
2 голосов
/ 02 марта 2011

Я сократил этот javascript до максимально простого, и он все еще не работает в IE8.

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload !== 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    };
  }
}

function callkits() {
    alert('Kits: Bug testing');
}

//addLoadEvent(callkits);
//window.onload = callkits;
window.onload = function() {
    callkits();
};

Ни один из двух закомментированных методов, ни активный метод ничего не делают в IE8.Javascript включен.(Вызов alert напрямую, вне функции, работает.) Я тут рву свои волосы.

Редактировать:

Хорошо, теперь это еще проще:

alert('Before onload.')

window.onload = function() {
    alert('Onload');
};

alert('After onload');

В Firefox, Opera, Safari и Chrome я получаю «До загрузки», «После загрузки», затем появляется страница, затем «Загрузка».В IE8 этого последнего шага не происходит.window.onload просто не стреляет.

1 Ответ

1 голос
/ 24 июня 2011

Стандартное событие onload не будет работать, если другой скрипт вызывается с помощью команды HTML defer.

<script for="window" event="onload" defer="1">products.related();</script>

Изменение приведенного выше значения для использования стандартной функции addLoadEvent() привело к его работе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...