3 回答

TA貢獻1808條經驗 獲得超4個贊
我發現onunload()事件確實觸發了。它的行為有些奇怪。附加到該事件的回調函數中的任何內容實際上都是在新頁面已在后臺加載之后運行的(您無法確定它是否已加載,但是服務器日志記錄將顯示它已加載)。
更奇怪的是,如果您在onunload()中有一個verify()調用,并且用戶單擊了鏈接以轉到其他地方,那么您就是在做生意。但是,如果用戶關閉iPad Safari瀏覽器選項卡,則會觸發onunload()事件,但您的Confirm()將隱式取消作為響應。

TA貢獻1842條經驗 獲得超13個贊
這部分JavaScript在Safari和Chrome(在ipad和iphone上)以及臺式機/筆記本電腦/其他瀏覽器上對我有效:
var isOnIOS = navigator.userAgent.match(/iPad/i)|| navigator.userAgent.match(/iPhone/i);
var eventName = isOnIOS ? "pagehide" : "beforeunload";
window.addEventListener(eventName, function (event) {
window.event.cancelBubble = true; // Don't know if this works on iOS but it might!
...
} );
添加回答
舉報