加载页面或返回到页面时不触发 onload 事件处理程序

来源:互联网 发布:三维立体软件有哪些 编辑:程序博客网 时间:2024/05/23 14:30

症状

当您跟踪链接在框架集中顶框架, 然后返回到启动位置, 页 onload 事件处理程序, 目标不触发。


解决方案

要解决此问题, 添加 onunload 事件处理程序。以便它将激发 (但不知道如何完成此操作) 这开启 onload 事件处理程序。


状态

Microsoft 已确认这是列出了本文 " 适用于 " 一节中 Microsoft 产品中存在错误。

方案1:

1.

frame.htm 和 test.htm 保存到 Web 服务器。

frame.htm

<html>
<frameset rows="*,*">
<frame src="test.htm">
</frameset>
</html>

test.htm

<HTML>
<HEAD>
<SCRIPT language='JavaScript'>
function testMessage()
{
alert("onload");
}
</SCRIPT>
</HEAD>
<BODY onload="testMessage()">
<a href="http://www.microsoft.com" target="_top">test</a><br>
</BODY>
</HTML>

2.

使用 Microsoft Internet Explorer Macintosh 查看 frame.htm。 将出现对话框框表示为框架 onload 事件处理程序已触发。

3.

单击链接以查看其他网页顶部框架中。

4.

单击 后退 按钮。 不触发 onload 事件处理程序。

5.

如果添加下列 onunload 事件处理程序, 不会发生此问题。

<BODY onload="testMessage()" onunload="">


方案2:


把OnLoad()事件修改,不用onload事件,随便用个事件名替换它,入Winload();

然后在框架代码的下方加入这个事件的调用即可;

如:

<HTML>

<HEAD>

<METAhttp-equiv="Content-Type"content="text/html; charset=gb2312">

<SCRIPTLANGUAGE=javascript>

<!--

//解决页面加载时无法进入onload的问题

function winOnload() {

alert(“替换Onload事件”);

}

//-->

</SCRIPT>

<TITLE>评分环境检测系统</TITLE>

</HEAD>

<BODY>

</TABLE><SCRIPTLANGUAGE="JavaScript">

<!--

//从新处理设置的路径参数

document.getElementById("ifControl").src="about:Blank";

document.getElementById("ifSave").src="about:Blank";

document.getElementById("ifInfo").src="Post.asp"

//解决页面加载时无法进入onload的问题 winOnload();

//-->

</SCRIPT>

</BODY>

</HTML>



事实证明下面这种方法有时更有有效

原创粉丝点击