以下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语句之上,但只是得到一个空框架。
有什么想法吗? 谢谢!
答案 0 :(得分:2)
@Hamish是对的。问题出在sorttable.js中。它使用window.onload,它与我的BODY onload冲突。在sorttable.js中,在一些复杂的逻辑中有几个window.onload语句,所以我不能在这种情况下使用推荐的解决方案,这将触发BODY onload事件中所有必需的onload函数。
相反,我的解决方案(我不太满意)是将frameloaded()方法的内容放在BODY的底部,而不是放在函数内部。这样它在加载过程中尽可能晚地执行。这在IE和Safari中有效(即在必须首先加载的表之后运行),但我在使用其他浏览器时遇到了麻烦。