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

JavaScript onload函数调用突然产生;“预期对象”;,javascript,sorttable.js,Javascript,Sorttable.js,以下onload函数调用正在工作: <script type="text/javascript"> function frameloaded() { if (parent.leftframe) { parent.leftframe.reportRightFrameReloaded(); } } </script> </head>

以下onload函数调用正在工作:


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


    onload="document.frameloaded();"   
没有运气。
我尝试将函数移到included语句上方,但只得到了一个空帧

有什么想法吗?
谢谢

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


相反,我的解决方案是将frameloaded()方法的内容放在正文的底部,而不是放在函数中,我对此并不完全满意。这样,它在加载过程中执行得越晚越好。这在IE和Safari中起作用(即,它在必须首先加载的表加载后运行),但我在其他浏览器中遇到了问题。

当您使用IE8调试器时,会在哪一行发生错误?您确定Firefox中的
sorttable.js
中没有错误吗,您可以使用错误控制台查找JavaScript错误。一般来说,您应该将html保存在.html文件中,css保存在.css文件中,JavaScript保存在.js文件中。您可以使用
document.onload=function(e){}
来设置
onload
事件,但很快你就会想从javascript中获得更多,这时你可能会开始使用像jQuery这样的JS框架,这样你就可以附加多个事件处理程序,做得更简单。不过现在,尽可能避免将JavaScript放入HTML属性中。@Hamish:很可能是sorttable.js中的某些内容导致了这个问题。但它是如此神奇的一段代码(我是免费下载的),我不想对它产生任何怀疑。然而,自从阅读了你的评论后,我发现了一个错误页面,我将在那里进一步研究。神奇的是,一旦包含了sorttable.js,您只需将属性class=“sortable”添加到任何html元素中,用户只需在列标题上单击鼠标即可对任何列进行排序!

    onload="this.frameloaded();"   

    onload="document.frameloaded();"