Javascript 添加其他脚本时onbeforeunload不工作
在离开页面之前,我用这段代码检查表单字段是否有任何更改Javascript 添加其他脚本时onbeforeunload不工作,javascript,jquery,onbeforeunload,Javascript,Jquery,Onbeforeunload,在离开页面之前,我用这段代码检查表单字段是否有任何更改 $(document).ready(function(){ var form = $('#submit-form'), original = form.serialize(); form.submit(function(){ window.onbeforeunload = null; }); window.onbeforeunload = function(){
$(document).ready(function(){
var form = $('#submit-form'),
original = form.serialize();
form.submit(function(){
window.onbeforeunload = null;
});
window.onbeforeunload = function(){
if (form.serialize() != original)
return 'Changes detected';
};
});
它工作得很好。然后我集成到我的页面,上面的脚本不再工作了。如果我把带有tag-it.js的行注释掉,它会再次工作。我对javascript相当无知,我不知道它为什么不起作用
这里是tag-it.js脚本的链接(顺便说一句,它非常好)
编辑:
如果我编辑表单并想离开页面,我的意思是没有任何弹出窗口
如果我没有包含tag-it.js文件(上面链接),一切正常,当我编辑表单并尝试离开页面时,会弹出窗口。您应该检查window.onbeforeuload是否已定义如果是,则可以 请按以下方式调用旧版本: //第一档
window.onbeforeunload = function(){
if (form.serialize() != original)
return 'Changes detected';
};
// other file
var olderonbeforeunload = window.onbeforeunload;
window.onbeforeunload = function(){
if(typeof olderonbeforeunload == 'function'){
olderonbeforeunload.apply(arguments);
}
// new code
};
你能详细解释一下“不再工作”吗?有什么错误吗?它只是不起作用吗?对不起,我误解了这个问题。我不知道如何处理你的答案@Shusl我应该把它放到tag-it.js文件中吗?并将//新代码替换为
if
和return
行?