当用户离开页面时,我需要在离开之前询问他是否想执行特定操作。
<script type="text/javascript">
$(document).ready(function() {
window.onbeforeunload = askConfirm;
});
function askConfirm() {
var addFriend = confirm("Would you like to ping?");
if (addFriend) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","http://example.com?ping=1234",true);
xmlhttp.send();
}
return null;
}
取决于最后一个的值return
陈述 (""
, null
, true
, false
,或者没有return
声明)我可能会遇到以下两种情况之一:
1) 用户收到“你想 ping 吗?”确认(良好),发送 ping(良好),并且用户会看到一个“此页面要求您确认是否要离开”弹出窗口(不好).
-or-
2) 用户收到“你想 ping 吗?”确认(好),ping 值是not已发送(坏),并且用户是not出现“此页面要求您确认是否要离开”弹出窗口(很好)。
如何发送 AJAX ping,同时抑制“此页面要求您确认是否要离开”弹出窗口?
Edit:听起来很荒谬,我发现这个问题的“解决方法”是alert()
之后xmlhttp.send()
陈述。唯一干净的方法是提醒用户他的 ping 已发送。如果未来的 StackOverflowers 找到更好的解决方案,我很想知道。
Thanks.
您可以使 Ajax 请求同步。
xmlhttp.open("GET","http://example.com?ping=1234", false); // use false here
xmlhttp.send();
如果您的服务器速度较慢,可能会导致轻微延迟,但它应该可以解决 ping 不发送的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)