我有这段代码:
window.addEvent('domready', function() {
var li_list = document.getElementById("topmenu").getElementsByTagName("li");
for (var i=0; i<li_list.length; i++) {
li_list[i].onmouseover=function() {
this.className+=" hover";
}
li_list[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" hover\\b"), "");
}
}
})
在IE7-8中失败:document.getElementById(...)为null或不是对象。
在Firefox中运行良好。
这会影响网站的主菜单功能:http://paraguasparados.com
感谢。
答案 0 :(得分:4)
在IE上,domready可以在dom准备好之前启动。 Post.
因此,当您的代码执行时,document
对象尚不可用。 (因此IE错误消息“document.getElementById(...)为null或不是对象。”)
解决方案:使用工具包(jQuery,yui等)提供与IE和其他浏览器相同的domready。
答案 1 :(得分:3)
试试这个。这应该仅适用于IE浏览器。
document.attachEvent( "onreadystatechange", function() {
if ( document.readyState === "complete" ) {
// dom ready
}
});
答案 2 :(得分:1)
使用jquery,他们已经完成了跨浏览器工作的腿部工作。
$(document).ready(function() {
// do some stuff here
});