gpt4 book ai didi

页面渲染后执行 Javascript IE6

转载 作者:行者123 更新时间:2023-11-28 12:50:06 25 4
gpt4 key购买 nike

在 IE 6 中完全呈现页面之前,我在运行一些 JavaScript 时遇到了问题(也许其他版本也是如此,但现在只是测试 IE6。Firefox 似乎没问题)。我可以通过在 window.onload 上调用 js 来解决这个问题,如下所示:

window.onload = function(){doIt();}

但是,我担心的是,我会覆盖 window.onload 中可能已经存在的任何其他内容。该代码将用作库的一部分,因此我不能保证 window.onload 不会被其他人设置在其他地方。我宁愿将我的函数附加到 onload 事件中,如下所示:

window.onload += function(){doIt1();}
window.onload += function(){doIt2();}

但是当我这样做时,只会调用 doit2() 。有没有办法在页面完全呈现时注册事件处理程序?我的第二个想法是将我的代码放入循环检查中,以确保我的所有对象在运行之前都存在。但我担心这可能会锁定浏览器。

仅提供一些背景信息,我的代码隐藏/显示 iFrame。我知道我可以使用 iFrame 的 onload 属性,但我需要在调用代码之前完全加载所有 iFrame。

社区有什么想法吗?预先感谢您的输入。

最佳答案

使用这个通用的 addLoadEvent 函数...

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

window.onload = function() {
if(oldLoad) oldLoad();
func();
}
}
}

这本质上是对要执行的函数进行排队。它永远不会覆盖先前分配的处理程序。下面的示例用法...

addLoadEvent(function() { alert("One!"); });

addLoadEvent(two);
function two() {
alert("Two!");
}

我想提一下像 jQuery 这样的库为您处理此类已知问题。

关于页面渲染后执行 Javascript IE6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2135563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com