Javascript 在window.onbeforeunload中完成按钮单击之前,光标不会停止?
下面是window.onbeforeunload的javascript代码。当按下浏览器后退按钮时,我正在调用按钮背后的代码单击方法 现在的问题是直到Javascript 在window.onbeforeunload中完成按钮单击之前,光标不会停止?,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,下面是window.onbeforeunload的javascript代码。当按下浏览器后退按钮时,我正在调用按钮背后的代码单击方法 现在的问题是直到$(“#buttonclientid”)光标才停止。单击()完成。只需调用该方法并转到下一个语句。如何按住或停止光标直到$(“#buttonclientid”)。单击()完成,然后移动到下一步 var form_has_been_modified = 0; $(function () { $("input").keyup(func
$(“#buttonclientid”)光标才停止。单击()
完成。只需调用该方法并转到下一个语句。如何按住或停止光标直到$(“#buttonclientid”)。单击()
完成,然后移动到下一步
var form_has_been_modified = 0;
$(function () {
$("input").keyup(function () {
form_has_been_modified = 1;
})
window.onbeforeunload = function (e) {
if (!form_has_been_modified) {
return;
}
doYouWantTo();
}
});
function doYouWantTo(){
doIt=confirm('Do you want to save the data before leave the page?');
if (doIt) {
var returnbutton;
//cursor should stop here until click function completes.
returnbutton = $("#buttonclientid").click();
}
else{
}
}
我相信您的问题在于,您的
doYouWantTo
函数在卸载之前不会返回要传递回onbeforeuload
的值,因此它会在运行函数的同时离开页面,而不是等待函数完成
您在这里的最佳行动如下:
return doYouWantTo()
....
if(doIt) {
$('#buttonclientid').click(function() { // unsure if you can attach callback to click but idea is same
return true;
});
} else {
return true;
}
将事件处理程序绑定到
onbeforeunload
事件时,它应返回以下两项之一:
- 如果希望显示确认,则处理程序应返回字符串
- 如果不希望显示确认(跳过处理程序),则返回
(或根本不返回,效果相同)未定义的
var form_has_been_modified = false;
$("input").keyup(function () {
form_has_been_modified = true; // use a boolean :P
});
window.onbeforeunload = function (e) {
if (form_has_been_modified) {
return 'Do you want to save the data before leave the page?';
} else {
return undefined; // this can be omitted if you prefer
}
};
告诉用户在系统对话框上单击了什么的唯一方法是使用
setTimeout
。有关该主题的详细信息,请参阅。光标“不停止”是什么意思?什么光标?它要去哪里?为什么它在移动?我的意思是,在点击浏览器上的“后退”按钮后,它正在执行下一步,但没有完成$(“#buttonclientid”)。单击();函数并返回第页。您的意思是“附加回调”。你能详细说明一下吗?我指的是一个回调,表明你的“保存”功能已经完成。我不相信您可以在单击事件上使用回调,因此可以将您的单击
代码取出,并将其放置在单独的函数saveData(callback)
和if(doIt)
branch replace$('.#buttonclientid')中。单击(
withsaveData(