gpt4 book ai didi

javascript - OnUnload 警报错误 "NS_ERROR_NOT_AVAILABLE"

转载 作者:数据小太阳 更新时间:2023-10-29 05:48:20 29 4
gpt4 key购买 nike

<html>
<body>

<button type="button" onclick="clickme()">Click Me</button>

<script>
var test = 0;

function clickme() {
test = 1;
console.log(test);
}

window.onunload = function() {
alert("test");
}
</script>

</body>
</html>

我正在使用这个简单的代码来测试一些关于 onunload 和 onbeforeunload 的事情。出于某种原因,每当我刷新/离开页面并导致 onunload 事件时,我都没有收到任何警报,并且在 Firebug 控制台中出现错误。如果我使用 onbeforeunload 这有效并且我没有收到任何错误,但我听说 onbeforeunload 不是很好的跨浏览器。

NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111     
(NS_ERROR_NOT_AVAILABLE) [nsIDOMWindow.alert]

alert("test");

我不是要提醒测试变量,只是在任何人试图指出之前提醒文本“测试”。

最佳答案

如果你想让它工作,它必须在 onbeforeunload 事件中,但不是创建一个警告/确认弹出窗口,onbeforeunload 事件有一个内置的弹出窗口。您所要做的就是返回一个字符串,当用户试图离开该页面时,弹出窗口就会出现。如果没有返回变量,则不会弹出。

  • 最棒的是弹出消息有 2 个按钮:确定和取消。
  • 如果用户点击确定,浏览器将继续离开该页面
  • 如果用户点击取消,浏览器将取消卸载并停留在当前页面
  • onbeforeunload事件是唯一可以取消onunload事件的弹窗

例子如下:

<script type="text/javascript">

window.onbeforeunload=before;
window.onunload=after;

function before(evt)
{
return "This will appear in the dialog box along with some other default text";
//If the return statement was not here, other code could be executed silently (with no pop-up)
}

function after(evt)
{
//This event fires too fast for the application to execute before the browser unloads
}

</script>

您似乎正试图在 onunload 事件中发出警报。这里的问题是为时已晚。该页面已经在卸载并且无法停止。您可能能够获得要显示的警告消息,但用户点击什么并不重要,因为页面已经在卸载。

您最好的选择是使用 onbeforeunload 事件。

关于javascript - OnUnload 警报错误 "NS_ERROR_NOT_AVAILABLE",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16517284/

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