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

本文详细介绍了在框架集环境中遇到的顶级框架加载事件处理程序未触发的问题,并提供了解决方案,通过添加onunload事件处理程序来解决此问题。通过两个示例代码演示了如何实现这一解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

症状

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



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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值