我想为IE尝试javascript的DOMContentLoaded事件。但这一事件并没有引发。这在IE上不支持吗。请帮个忙。我在谷歌上找不到多少帮助。我想在javascript而不是jquery中尝试这一点。请帮个忙。
发布于 2014-04-22 04:32:45
DOMContentLoaded在IE9和其他所有现代浏览器中都是受支持的。
使用onreadystatechange的IE早期版本有很多工作要做。您可以在这里看到一个完整的跨浏览器、纯javascript内容加载检测函数:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it,您可以按原样使用它,也可以从代码中借用概念。
其基本思想是,在现代浏览器中使用DOMContentLoaded,在较早版本的IE中使用onreadystatechange,同时使用window onload。首先触发的是文档安全查询和修改的最早时刻。
上述链接代码的关键在于以下逻辑:
// otherwise if we don't have event handlers installed, install them
if (document.addEventListener) {
// first choice is DOMContentLoaded event
document.addEventListener("DOMContentLoaded", ready, false);
// backup is window load event
window.addEventListener("load", ready, false);
} else {
// must be IE
document.attachEvent("onreadystatechange", readyStateChange);
window.attachEvent("onload", ready);
}在文档已经准备好之后,您也可能正在为该事件注册。如果是这样的话,您的事件处理程序将永远不会被调用,因为事件已经发生。在安装事件处理程序之前,您可以检查文档状态,看看它是否已经准备好了,如下所示:
if (document.readyState === "complete") {同样,完整的逻辑显示在这里:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it
https://stackoverflow.com/questions/23210176
复制相似问题