如果页面刷新,则显示模态,但如果后面有链接,则不显示模态
Show modal if page refreshed, but not if a link is followed
访问者想要离开页面(重新加载、刷新、关闭选项卡等),然后触发一个函数,提示一个模态"你确定要离开吗?"。
如果他们点击链接,我想允许他们在没有模式提示的情况下离开页面。
下面是一个jsfiddle示例-http://jsfiddle.net/vvj90z8h/3/
<a href="http://www.google.com" class="button">Proceed</a>
<div class="price">$139.99</div>
// function
priceFunction = function (){
window.onbeforeunload = function() {
return 'Sure you want to leave?';
}
};
// if price is 139.99, run function
var price = $(".price").text().replace(/[^0-9'.]/g, '');
if (price = 139.99){
priceFunction();
}
如果刷新页面,则会显示模态,这是可以的。
我想点击链接,而不是模态秀。
点击即可解除onbeforeunload
事件监听器的绑定:
$('#proceed').click(function(){ window.onbeforeunload = null; });
演示
当他们点击或取消绑定事件时设置标志
(function(){
var pass = false;
$(document.body).on("mousedown","a.button", function () {
pass = true;
});
window.onbeforeunload = function() {
if(pass) return;
return 'Sure you want to leave?';
}
}());
或
(function(){
$(document.body).on("mousedown","a.button", function () {
$(window).off("beforeunload");
});
$(window).on("beforeunload", function() {
return 'Sure you want to leave?';
});
}());
http://jsfiddle.net/jcqjj1u3/2/
// function
priceFunction = function (){
window.onbeforeunload = function() {
return 'Sure you want to leave?';
}
};
// if price is 139.99, run function
var price = $(".price").text().replace(/[^0-9'.]/g, '');
if (price = 139.99){
priceFunction();
}
var beforeUnloadFunction;
$('.button').click(function(){
beforeUnloadFunction = window.onbeforeunload; // save the function for later just in case
window.onbeforeunload = null;
// following code is optional. Use it only if you need to do other stuff befre leaving
event.preventDefault();
// do other stuff before leaving if you'd like to
location.href= $(this).attr('href');
});
相关文章:
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- 打开一个模态并将其链接到AngularJS中的指令
- SemanticUI模态not onDeny/onApprove事件未激发
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 如何通过所选索引(AngularJS)在模态弹出窗口中显示数据
- 如果满足某些条件,如何在不调用模态的情况下首先调用类
- 如果通过ajax加载,如何在bootstrap中打开模态
- 如果模态可见,则进行延长测试
- 如果页面刷新,则显示模态,但如果后面有链接,则不显示模态
- 如果存在模态,如何取消模糊事件
- 如果条件为假,隐藏第二个模态
- Bootstrap 3 -如果手风琴位于ajax填充的模态中,则不会触发事件hidden.bs.collapse
- 如何关闭一个模态,如果你点击叠加
- 如果出现错误,返回到模态
- 如何检查和传递变量,如果保存按钮在模态点击?javascript
- 如果有条件,在JsonResult中返回一个模态确认框
- 在提交表单时,检查一个值,如果存在,则打开一个模态窗口以获取更多信息
- 如果关闭了模态弹出窗口而没有取消在模态内的网格视图中的行编辑,则它不会再次打开
- 如果点击里面的按钮,关闭模态
- 如果满足条件语句,如何触发引导模态