我希望在关闭网站之前显示表单。
我找到了达蒙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
时打开表单?这是正确的还是有另一种解决方案?
答案 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");
}
});