JavaScript onload函数调用突然产生“对象预期”

时间:2011-03-05 00:31:24

标签: javascript sorttable.js

以下onload函数调用正在运行:


    <script type="text/javascript">   
    function frameloaded() {  
       if (parent.leftframe) {  
          parent.leftframe.reportRightFrameReloaded();  
       }  
    }  
    </script>      
    </head>    
    <body onload="frameloaded();">  
 .... etc.

直到我添加了外部javascript引用

 
    <script type="text/javascript" src="sorttable.js"></script< 
紧接着它。然后突然它开始在IE中给我“对象预期”(我有IE8)并且只是停止在Firefox(3.6.3)中工作。我想在包含的文件中有一个重复的函数名称,所以我给它一个随机名称,它仍然失败。我尝试使用


    onload="this.frameloaded();"   


    onload="document.frameloaded();"   

没有运气。
我尝试将我的函数移到include语句之上,但只是得到一个空框架。

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

@Hamish是对的。问题出在sorttable.js中。它使用window.onload,它与我的BODY onload冲突。在sorttable.js中,在一些复杂的逻辑中有几个window.onload语句,所以我不能在这种情况下使用推荐的解决方案,这将触发BODY onload事件中所有必需的onload函数。

相反,我的解决方案(我不太满意)是将frameloaded()方法的内容放在BODY的底部,而不是放在函数内部。这样它在加载过程中尽可能晚地执行。这在IE和Safari中有效(即在必须首先加载的表之后运行),但我在使用其他浏览器时遇到了麻烦。