在关闭网站之前显示表格几个标签问题

时间:2016-10-05 09:33:54

标签: jquery cookies

我希望在关闭网站之前显示表单。

我找到了达蒙Jquery Show Popup only when window is closed

的解决方案
var key = true;
$(window).bind('beforeunload', function(e){
  if(key)
  $("#lead-gen-modal").dialog("open");
}); 

并修复文档链接

 $(document).on("click","a",function() {
      key=false; 
 });

很好的解决方案,谢谢达蒙。

BUT

还有一个问题。例如,用户在新选项卡中打开链接。例如,他在我的网站页面的浏览器中打开了几个标签。在关闭之前,关闭每个标签,他将获得一个表格。这不是我想要的。

可能是饼干的解决方案吗?例如,第一次访问网站 - 设置page is first的Cookie,另一个标签设置Cookie secondary,并且仅当Cookie为first page时打开表单?这是正确的还是有另一种解决方案?

1 个答案:

答案 0 :(得分:1)

每次打开新标签/窗口时,您都可以使用Cookie或localStorage向其添加计数器:

$(window).load(function() {
   // check if counter exists
   var counter = localStorage.getItem('tabCounter');

   // if not, create it
   if(counter == null) {
      counter = 0;
   }
   else {
      counter = parseInt(localStorage.getItem('tabCounter'));
   }

   // increment
   counter = counter + 1;

   // save new value
   localStorage.setItem('tabCounter', counter);
});

现在卸载你可以执行以下操作:

$(window).bind('beforeunload', function(e){
   // get counter
   var counter = parseInt(localStorage.getItem('tabCounter'));

   // decrement
   counter = counter - 1;

   // save new value
   localStorage.setItem('tabCounter', counter);

   // if this is the last tab
   if(counter == 0) {
      $("#lead-gen-modal").dialog("open");
   }

});