簡體   English   中英

使用onbeforeunload的正確方法?

[英]Correct way to use onbeforeunload?

我試圖在用戶到達我的頁面時發布數據。 這在chrome,explorer和Firefox中都有效,但是在Firefox上,僅在用戶關閉頁面時才有效。 如果他們回去了,或者去了另一個站點(通過在地址欄或其他地方鍵入內容),則不會發布數據。 我的問題是,使用onbeforeunload發布數據的正確方法是什么?

$(window).bind('beforeunload', function () {

      $.post("track.php", {
         async: false,
         ip: ip,
         referer: referer,
         clicks: kactane2,
         scrolls: kactane,
         time: time,
         refid: refid,
         country: country, 
      });

});

沒有一個好方法,因為那不是onbeforeunload使用方式。

使用onbeforeunload的正確方法是偵聽此事件,然后卸載由於用戶離開頁面而可能使用的任何數據或資源。 您不應該使用它來嘗試開始新事物。 按照HTML5規范 showModalDialog() alert() confirm()prompt()明確不允許的,這個想法是給你一點時間來清理任何事件處理程序,網絡工作者和其他的東西干凈。

如果定義了事件處理程序,則可能會向用戶顯示"Are you sure you want to leave?" 但出於安全原因,通常無法自定義表單,但取決於瀏覽器。

您最好將數據設置為cookie或可以快速完成且僅在瀏覽器中進行的操作,然后在下一頁加載時查找該數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM