外部链接所需的OnUnload消息

时间:2010-05-27 12:49:57

标签: javascript message onunload

我需要一个消息脚本,只有当人们离开当前网页而不是当前网站时才会出现。

当人们完全离开网站时,会显示该消息,他们需要按OK按钮才能保留当前页面(并取消离开网站)。

当人们真正留在网站上或点击内部链接或页面时,脚本可能无法运行。

可以这样做吗?

3 个答案:

答案 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');
});