为什么我收到此Javascript运行时错误?

时间:2008-10-07 14:27:34

标签: javascript html internet-explorer

我的网页上有以下JavaScript ...

64    var description = new Array();
65    description[0] = "..."
66    description[1] = "..."
...
78    function init() {
79        document.getElementById('somedivid').innerHTML = description[0];
80    }
81
82    window.onload = init();

在Microsoft Internet Explorer中,它会导致以下错误...

  

发生了运行时错误   你想调试吗?

     

行:81
  错误:未实现

javascript runtime error

第79行按预期执行。

如果第79行被注释掉,它仍会抛出错误。

如果我注释掉第82行,那么该函数不会执行,也没有错误。

5 个答案:

答案 0 :(得分:13)

第82行不应该读:

window.onload = init;

当你执行“init()”时,它是对一个返回void的函数的调用。您最终在页面加载之前调用该函数。

答案 1 :(得分:2)

要保留以前设置的任何onload函数,请尝试以下

var prevload = window.onload;
window.onload = function(){
    prevload();
    init();
}

答案 2 :(得分:1)

尝试为'load'添加一个envent侦听器,或者使用声明性语法<body onload="init()">

编辑:另外,说window.onload = init();将window.onload设置为调用init()的结果。你的意思是window.onload = init;(一个lambda表达式)。这仍然是不好的做法,因为它会覆盖可能绑定到window.onload的其他内容。

答案 3 :(得分:0)

除了这里提出的onload修复,还要检查是否有多个具有该ID的元素,我相信IE将返回具有该ID的所有元素的集合,在这种情况下,您需要选择预期的项目在访问该属性之前从集合中删除或确保您使用唯一ID。

答案 4 :(得分:0)

尝试在启用了FireBug插件的情况下在FireFox中运行它。这将允许您调试javascript