我正在谈论一个风格化的对话框,而不是默认的' beforeunload'无法设置样式的对话框。
见Facebook:
最不引人注目的方法是什么?我首先声明了一些脚本,并且神奇地总是有效。
我想到的是:
function showCustomDialog()
{
[...]
}
var unfinished = true;
$('a').click(function()
{
if ( unfinished )
{
window.showCustomDialog( { originalUrl: $(this).attr('href') } );
return false;
}
}
但是我担心这会破坏一些情况,即<a>
元素用于触发JS行为,或者JavaScript触发window.location.href更改。
是否有更好的,非突兀的方式?
额外注意 - 他们也让它用于后退按钮。
额外注意 - 显然,当它们无法控制时,它们会回到默认对话框。
答案 0 :(得分:0)
我认为主要的问题是,你无法预测DOM中的每一个变化,所以你可以轻松刷新每个mousemove事件(智能手机的触摸事件等),如下所示:
$(document).off('mousemove').mousemove(function(){
$('a').off('click').click(function(e){
e.preventDefault();
//your dialog goes here
});
});