如何在打开新选项卡时向用户显示消息

时间:2014-03-04 23:35:40

标签: jquery html5 browser dom-events

以下代码使用onbeforeunload在用户离开网站之前显示消息。

$(window).on('beforeunload', function(){
    //  Was the <a> tag clicked?
    if(isClicked)
    {
        //  Reset isClicked
        isClicked = false;
        //  Display the message
        return 'You are leaving the site.';
    }
});

//  Define a clicked state variable with a default value;
isClicked = false;

$(window).load(function(){
    //  Get all tags with the specified className
    var anchors = $('.leaveSite');

    //  Add the "onclick" listener to each one of them
    anchors.each(function(index) {
        $(this).click(function(){
            isClicked = true;
        });
    });
});

我认为 onbeforeunload 在打开新的Windows /标签时有效。 当用户点击打开新窗口/标签<a class="leaveSite">时,如何实现同样的效果?

2 个答案:

答案 0 :(得分:0)

要显示消息,是否应该像这样编写onbeforeunload函数

$(window).on('beforeunload', function(){
    //  Was the <a> tag clicked?
    if(isClicked)
    {
        //  Reset isClicked
        isClicked = false;
        //  Display the message
        alert 'You are leaving the site.';
    }
});

答案 1 :(得分:0)

如果任何其他答案更好,我会很乐意接受它。

经过一些测试后,我得出结论,当链接打开新窗口/标签时,我无法触发 onbeforeunload 事件。这很简单,因为窗口对象在这些情况下从未被告知卸载(因为新页面将加载到其他地方),因此onbeforeunload永远不会触发。

如果当前页面在将来打开新的浏览器窗口或标签页时触发新事件,也许会很高兴。

对于这种情况,最好在HTML标记中添加onclick="myAlert();"属性,并让函数执行以下操作:

function myAlert() {
    alert("A new window/tab is about to be opened.");
}