По какой-то причине IE9 не запускает мой JavaScript-код при загрузке, когда браузер запускается впервые в этом сеансе. Кажется, он запускается только после загрузки пользователем страницы. Он также запускает JavaScript, когда консоль отладки открыта.IE9 не работает javascript onload
Как сделать так, чтобы JavaScript запускался при загрузке после открытия браузера? Это просто ошибка IE9?
Я переформулирую это так, чтобы вы поняли: код НЕ ПРОХОДИТ, если вы заходите на сайт после запуска нового сеанса браузера. Код ДЕЛАЕТ запустить, если открыть сайт в новой вкладке, или перезагрузите страницу или откройте консоль отладки
Вот функция, я использую, чтобы запустить свой сценарий OnLoad (который отлично работает в NORMAL браузеры):
(function (i) {
var u = navigator.userAgent;
var e = /*@[email protected]*/
false;
var st = setTimeout;
if (/webkit/i.test(u)) {
st(function() {
var dr = document.readyState;
if (dr == "loaded" || dr == "complete") {
i()
} else {
st(arguments.callee, 10);
}
}, 10);
} else if ((/mozilla/i.test(u) && !/(compati)/.test(u)) || (/opera/i.test(u))) {
document.addEventListener("DOMContentLoaded", i, false);
} else if (e) {
(function() {
var t = document.createElement('doc:rdy');
try {
t.doScroll('left');
i();
t = null;
} catch (e) {
st(arguments.callee, 0);
}
})();
} else {
window.onload = i;
}
})(init); //init is the function to call onload
Как хороший совет javascript, всегда используйте обнаружение функции, а не обнаружение браузера. Мне больно видеть этот код. Вы можете решить большинство проблем, связанных с перекрестным браузером, с помощью jQuery. http://api.jquery.com/ready/ Работает ли он в ie8? –
Я отказываюсь использовать jQuery. Благодарю вас. Меня интересует использование JavaScript, а не библиотеки. Этот код действительно не является проблемой, также я нашел его где-то, думая, что это решит мою проблему (а это не так). Главное, что он отлично работает, когда вы перезагружаете страницу или открываете консоль отладки, но не при первом запуске браузера и переходе на сайт - что не имеет смысла! –
Можете ли вы прокомментировать свой код? Я не понимаю, что вы делаете. Вы присваиваете false переменной e, а затем используете ее в «else if (e)». В чем смысл этого? – user907860