我需要一个消息脚本,只有当人们离开当前网页而不是当前网站时才会出现。
当人们完全离开网站时,会显示该消息,他们需要按OK按钮才能保留当前页面(并取消离开网站)。
当人们真正留在网站上或点击内部链接或页面时,脚本可能无法运行。
可以这样做吗?
答案 0 :(得分:6)
结帐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;
});
});
答案 1 :(得分:1)
我遇到了类似的问题。但是在我的情况下,如果有人按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>
答案 2 :(得分:1)
在大多数情况下,您不需要为所有事件提供弹出窗口,除了一个:用户关闭窗口。
以下是我的解决方案:
$(window).on('beforeunload', function() {
/* whatever you want here */
}
$(document).on('click keydown', function(){
$(window).off('beforeunload');
});