我使用 jQuery 在用户离开页面时显示确认消息,如下所示:
var changes = false;
window.onunload =function() {
if (changes) {
$.post("check.php",{undovideokey:VID});
} else return null;
};
另一方面
<input type='submit' name='Add' value='submit ' align='right' onclick="changes = true;" />
当我刷新页面时,在 Google Chrome 中运行代码时出现问题。我见过很多这样的问题,但没有有用的答案。
手动刷新页面后,onunload 处理程序中的 jQuery ajax 调用会触发。如何保证 onunload 首先发生? https://stackoverflow.com/questions/5034216/jquery-ajax-call-in-onunload-handler-firing-after-getting-the-page-on-a-manual-re
Chrome 中的 window.onbeforeunload ajax 请求 https://stackoverflow.com/questions/4945932/window-onbeforeunload-ajax-request-problem-with-chrome
谢谢,
莎拉
如果我理解正确的话,你的问题是AJAX请求发生after页面已刷新。
更改代码以触发onbeforeunload
事件并使用同步 AJAX 请求应该可以解决您的问题:
var changes = false;
window.onbeforeunload = function() {
if (changes) {
$.ajax({
async: false,
url: "check.php",
data: {
undovideokey: 'foo'
}
});
} else {
return null;
};
};
请注意,这在 Chrome 的开发人员工具中很难看到,因为它不会在重新加载时保留 AJAX 请求。您应该在服务器端或使用类似的工具来验证行为Fiddler http://fiddler2.com/
工作演示:http://jsfiddle.net/wq4hk/4/show http://jsfiddle.net/wq4hk/4/show(可通过编辑http://jsfiddle.net/wq4hk/4/ http://jsfiddle.net/wq4hk/4/)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)