javascript - 避免刷新时弹出窗口。仅当用户关闭浏览器窗口时显示

标签 javascript jquery

我想仅在用户关闭浏览器窗口时显示弹出窗口。但是,在下面的代码中。当我刷新页面时它显示弹出窗口。

我的代码

<script type="text/javascript">
    $(document).ready(function()
    {
        var key = true;
        $(window).bind('beforeunload', function(e){
            if(key)
             return confirm("Do you really want to close? This will log you out of your profile."); 
         e.preventDefault()
        }); 
        $(document).on("click","a",function() {
          key=false; 
        });    
    });
</script>

最佳答案

这基本上就是您所需要的。

来源:open a custom popup on browser window/tab close

JSFiddle:http://jsfiddle.net/SQAmG/5/

var popit = true;
window.onbeforeunload = function() { 
     if(popit == true) {
          popit = false;
          return "Are you sure you want to leave?"; 
     }
}

编辑

使用 HTML5 Web Storage 在浏览器中模拟 session 。在这里,您需要使用 sessionStorage 而不是 localStorage,以便 session 在浏览器窗口完全关闭时结束。

如果设置了 sessionStorage 变量,则不要启动弹出窗口,否则允许执行弹出窗口代码。

HTML5 网络存储:http://www.w3schools.com/html/html5_webstorage.asp

关于javascript - 避免刷新时弹出窗口。仅当用户关闭浏览器窗口时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26676180/

相关文章:

jquery - 如何动态更改 kendo ui 网格中的值

jquery - 禁用时间段 jquery fullcalendar

java - html 页面上的验证码图像链接

javascript - 我怎样才能隐藏我的 JavaScript 函数以便没有人可以窃取它们?

jquery - 从 jQuery 获取下拉列表文本

c# - 如何在c#中的文本框之间复制选定的日期

jquery - 使用 jQuery 的 gt() 选择器时出现 CSS 错误?

javascript - 使用嵌套单选按钮获取父输入 div 的 ID 以实现可访问性

javascript - knockout 日期验证无法正常工作

JavaScript 增量