我想在用戶離開頁面或關閉窗口時發送ajax請求。
這裏是我的代碼中:'onbeforeunload'兩次觸發
<script type="text/javascript">
function sendajax(){
$.ajax({
url: "someurl",
data: mydata,
async : false
});
}
</script>
<script type="text/javascript">
window.onbeforeunload=function(){sendajax();};
</script>
當事件發生時,事件觸發兩次。
爲什麼會發生?
我知道我可以通過添加一個變量var ajaxSent=true;
來防止它,但可能有更乾淨的方法來做到這一點?
UPD:
我更換了sendajax功能內容與一些其他的代碼(不發送Ajax),並發現AJAX是不是一個導致了問題。它仍然進入該功能兩次。
頁面上是否有iframe? – beeglebug 2012-01-03 11:22:03
不,這是僅包含一些文本和鏈接的測試頁面的一部分 – lvil 2012-01-03 11:27:45
您能舉一個例子嗎?另外,你看到了什麼瀏覽器發生這種情況? – beeglebug 2012-01-04 08:30:59