当用户离开页面时,我需要询问他是否要在离开之前执行特定操作.
<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(好),并向用户显示“此页面要求您确认要离开”弹出窗口(BAD).
-要么-
2)用户得到“你想要ping吗?”确认(好),ping不发送(BAD),并且没有向用户显示“此页面要求您确认要离开”弹出窗口(正常).
如何发送AJAX ping,但是抑制“此页面要求您确认要离开”弹出窗口?
编辑:听起来很荒谬,我发现这个问题的“解决方法”是在xmlhttp.send()语句之后发出alert().唯一干净的方法是提醒用户他的ping已被发送.如果未来StackOverflowers找到更好的解决方案,我很想知道.
谢谢.