gpt4 book ai didi

javascript - 如何访问在卸载前触发的 JavaScript href 事件

转载 作者:搜寻专家 更新时间:2023-11-01 04:47:34 33 4
gpt4 key购买 nike

我想访问导致 beforeunload 事件的事件。具体来说,如果我单击指向另一个页面的链接,我想知道该链接在 beforeunload 事件处理程序中是什么。

这样,我将根据 URL 的内容在 beforeunload 事件处理程序中执行不同的操作。

例如“http:”或“https:”警告用户丢失未保存的更改; 'mailto:' 或 'skype:' 不要警告用户,因为页面实际上不会被卸载。

我正在尝试为这样的问题构建一个好的解决方案: mailto link (in chrome) is triggering window.onbeforeunload - can i prevent this?

最佳答案

我已经准备好告诉您这是不可能的,因为 onbeforeunload 事件仅在您 check out event.target、event.originaltarget 等时报告已被窗口触发。但是,如果您覆盖 window.onclick,我们可以修改该方法以注册上次在页面上单击的元素。然后,通过为 window.onbeforeunload 提供代码,我们可以指定新的行为来检查最后单击的元素的 href。万岁,啤酒!

这里的代码将以纯 javascript 的形式为您提供您想要的准确信息,并且没有任何多余的东西可以添加到您的 anchor 标记中。我还加入了 preventDefault(),它会弹出“此页面要求您确认是否要离开 - 您输入的数据可能不会保存。”确认框。希望这对您有所帮助 - 您可以从这里找出要做什么。

<!DOCTYPE html>
<html lang="en">
<head>
<title>12065389</title>
<meta charset="utf-8">
<script type="text/javascript">
var last_clicked;

window.onclick = function(e) {
last_clicked = e.target;
return true;
}

window.onbeforeunload = function(e) {
var e = e || window.event;
if (last_clicked.href) {
alert(last_clicked.href);
e.preventDefault();
}
}
</script>
</head>
<body>
<a href="http://google.com">google</a>
</body>
</html>

关于javascript - 如何访问在卸载前触发的 JavaScript href 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12065389/

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