分享

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

 悟静 2012-11-28

症状

当您跟踪链接在框架集中顶框架, 然后返回到启动位置, 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>

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

<SCRIPT LANGUAGE=javascript>

<!--

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

function winOnload() {

     alert(“替换Onload事件”);

}

 

//-->

</SCRIPT>

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

</HEAD>

 

<BODY>

</TABLE><SCRIPT LANGUAGE="JavaScript">

<!--

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

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

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

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

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

//-->

</SCRIPT>

</BODY>

</HTML>



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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多