Dir*_*oer 8 javascript jquery onbeforeunload onunload
我在谈论一个样式化的对话框,而不是默认的'beforeunload'对话框,它无法设置样式.
见Facebook:

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