代码之家  ›  专栏  ›  技术社区  ›  Elamurugan

所有浏览器的javascript窗口关闭事件而不是卸载事件

  •  10
  • Elamurugan  · 技术社区  · 15 年前

    当用户试图关闭浏览器而不保存某些设置时,我想提醒用户。

    我在另一个页面中添加卸载选项以通知卸载数据,但如何在window.close上通知用户(它不执行)

    window.onbeforeunload = confirmExit;
    function confirmExit(){
        if(readCookie("onlineVD") == "playing" && Confirm_Delete=="0")
        {
            return "You are leaving a video which is in play mode.Are you sure want to exit this page?";
        }
        else{
            Confirm_Delete="0";
        }
    }
    

    在所有浏览器中,我希望window.close用于on tab close和on window close。

    请给我找个解决办法

    2 回复  |  直到 15 年前
        1
  •  7
  •   Richard Garside    15 年前

    当我测试事件代码时,您已经使用了。您只需要返回false就可以阻止浏览器关闭。将询问用户是否确定要离开页面。

    我正在使用您的代码的这个简短版本:

    window.onbeforeunload = confirmExit;
    function confirmExit(){
        alert("confirm exit is being called");
        return false;
    }
    
        2
  •  6
  •   Rob Van Dam    15 年前

    这个 Mozilla documentation 指示应设置event.returnvalue,而不是简单地返回字符串:

    window.onbeforeunload = confirmExit;
    function confirmExit(e){
        if(readCookie("onlineVD") == "playing" && Confirm_Delete=="0")
        {
            var msg = "You are leaving a video which is in play mode.Are you sure want to exit this page?";
            if (e) {
                e.returnValue = msg;
            }
    
            return msg;
        }
        else{
            Confirm_Delete="0";
        }
    }