我需要一个消息脚本,它只会在人们离开当前网页而不是当前网站时出现。外部链接所需的OnUnload消息
当人们完全离开网站时,消息会出现,他们需要按OK按钮才能保持当前页面(并取消离开网站)。
当人们实际停留在网站上或当他们点击内部链接或页面时,脚本可能无法运行。
可以这样做吗?
我需要一个消息脚本,它只会在人们离开当前网页而不是当前网站时出现。外部链接所需的OnUnload消息
当人们完全离开网站时,消息会出现,他们需要按OK按钮才能保持当前页面(并取消离开网站)。
当人们实际停留在网站上或当他们点击内部链接或页面时,脚本可能无法运行。
可以这样做吗?
结帐this very basic example solution。它设置onbeforeunload
处理程序,但如果用户单击内部链接,则将其删除。以下是示例解决方案代码的通用版本。
HTML:
<a href="internal_link.html">internal link</a>
<a href="http://www.example.com">external link</a>
JS(使用jQuery):
window.onbeforeunload = function(){
return "Are you sure you want to leave our website?";
}
$(function(){
$('a, input, button').click(function(){
window.onbeforeunload = null;
});
});
那么总代码会包含查询字符串等呢?我不明白内部链接的一部分?因为我无法更改我们的内部链接,这些链接是由我们的购物车 – tumtummetjes 2010-05-28 00:18:02
自动生成的,而且正在关闭HTML标记正文部分等。 – tumtummetjes 2010-05-28 00:18:53
行'internal link'仅仅是一个链接的示例,它与“location.host”具有相同的域名。 。任何对你的网站“内部”的链接(意味着它不链接到不同的域)应该导致'if'语句'this.href.match(location.host)'返回'true',导致' onbeforeunload'处理程序将被删除,从而防止出现“弹出消息”消息“您确定要离开我们的网站吗?”消息。 [...继续以下...] – Adam 2010-06-02 04:24:24
我有一个类似的问题。然而,在我的情况下,如果有人按F5或关闭窗口,此消息应该根据用户的语言进行翻译。
按照我的小例子。
<html>
<head>
<script type="text/javascript">
function closeThis()
{
if (window.confirm("Minha mensagem!")){
window.close();
}
}
function test()
{
// Add a warning in case anyone tries to navigate away or refresh the page
return confirm("Minha mensagem");
}
</script>
</head>
<body onbeforeunload=test();>
<p>Hello World! Press F5 or Close this Window</p>
</body>
</html>
在大多数情况下,除了一个以外,您不需要弹出所有事件:用户关闭窗口。
这里是我的这个解决方案:
$(window).on('beforeunload', function() {
/* whatever you want here */
}
$(document).on('click keydown', function(){
$(window).off('beforeunload');
});
PS我的网站http://www.consolepro.net这profides任天堂Wii的softmod软MOD 确实有其生成的链接的全自动 – tumtummetjes 2010-05-27 13:43:34
可能的复制脚本[离开网站时显示警告,而不仅仅是页面](http://stackoverflow.com/questions/2365994/display-a-warning-when-leaving-the-site-not-just-the-page) – KyleMit 2017-04-13 12:34:35