出于某种原因,当浏览器第一次启动该会话时,IE9 没有运行我的 JavaScript 代码 onload。它似乎只在用户刷新页面后运行 onload 。它还将在调试控制台打开时运行 JavaScript。
如何使 JavaScript 在浏览器打开后运行 onload?这只是IE9的错误吗?
我将重申这一点,以便您了解:如果您在启动新的浏览器会话后访问该站点,则代码不会运行。如果您在新选项卡中打开站点、重新加载页面或打开调试控制台,代码会运行
这是我用来运行脚本 onload 的函数(在NORMAL浏览器中运行良好):
(function (i) {
var u = navigator.userAgent;
var e = /*@cc_on!@*/
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