代码之家  ›  专栏  ›  技术社区  ›  Zack Peterson

为什么我会得到这个javascript运行时错误?

  •  4
  • Zack Peterson  · 技术社区  · 16 年前

    我的网页上有以下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 回复  |  直到 10 年前
        1
  •  13
  •   Ates Goral    16 年前

    第82行不应该是:

    window.onload = init;
    

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

        2
  •  2
  •   Jacob    16 年前

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

    var prevload = window.onload;
    window.onload = function(){
        prevload();
        init();
    }
    
        3
  •  1
  •   Tomalak    16 年前

    尝试为“load”添加环境侦听器,或者使用声明性语法 <body onload="init()"> .

    编辑:另外,说 window.onload = init(); 将window.onload设置为调用结果 init() . 你的意思是 window.onload = init; (lambda表达式)。这仍然是一种不好的做法,因为它覆盖了其他可能与之相关的东西。 window.onload .

        4
  •  0
  •   J c    16 年前

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

        5
  •  0
  •   edosoft    16 年前

    尝试在firefox中使用 FireBug 插件已启用。这将允许您调试JavaScript