gpt4 book ai didi

javascript - onunload 事件出错

转载 作者:行者123 更新时间:2023-12-02 19:03:32 27 4
gpt4 key购买 nike

我的 onunload 事件测试脚本有问题它必须仅在窗口 onunload 上触发但它也会在负载下点火..为什么?有什么不对劲,我不知道是什么。。请帮忙

这是html代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
function hello(){alert("welcome to my page");}
</script>
<script type="application/javascript" src="script.js"></script>
</head>
<body onload="hello()" >
</body>
</html>

这是脚本代码

window.onunload = goodbye();
function goodbye(){
alert("Thank you for visiting.come back soon!");
}
//window.addEventListener('unload',goodbye(),false);

我尝试过使用 body 标记进行内联调用、window.onunload 调用和监听器调用。一切正常,我收到“感谢您访问。请尽快回来!”页面首次加载时的消息。

最佳答案

问题在于以下行:

window.onunload = goodbye();

这会将 window.unload 事件设置为等于 goodbye() 函数的结果,并立即调用 goodbye() 函数。将其更改为:

window.onunload = goodbye;

更多细节:

您可以通过命名函数并在括号中传递零个或多个参数来调用该函数(例如:goodbye())。当您调用函数时,它会立即被调用,并且,如果它用作语句的一部分(而不是整个语句),则在进行调用的地方使用函数的返回值。所以,你所说的这句话是:

window.onunload = goodbye();

是:“获取调用goodbye函数的结果,并将返回值赋给window.onunload变量”。调用goodbye函数会弹出一个警报,但返回null,因此您实际上是在说,“立即弹出一个警报,然后设置window.onunload” > 变量为空”。

window.onunload 变量(以及所有其他事件变量)期望是一个函数,因此您实际上想说的是,“设置 window.onunload” > 函数作为goodbye函数,因此当系统调用onunload事件时,它会调用goodbye函数”,并做到这一点,将函数本身分配给变量:

window.onunload = goodbye;

但是

onunload 事件可能不是您想要的。这只在页面卸载后触发,因此大多数 UI 组件不再可用,包括 alert。尝试改为查看 onbeforeunload ( JavaScript + onbeforeunload )

关于javascript - onunload 事件出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14558551/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com