iT邦幫忙

0

iphone的safari網頁離開事件偵測

  • 分享至 

  • xImage

各位好

我目前在作一個網頁功能
當離開網頁時,要能偵測到,並彈出提醒訊息
windows端我用beforeunload事件可以偵測的到
但在ios上,使用iphone,並透過pagehide事件,無法偵測到網頁離開的事件

我的iphone手機相關規格如下:
機型:iphoneX
ios版本:16.3.1

程式碼如下:

var isOnIOS = navigator.userAgent.match(/iPad/i)|| navigator.userAgent.match(/iPhone/i);
var eventName = isOnIOS ? "pagehide" : "beforeunload";

window.addEventListener(eventName, function (event) { 
    call function...
	event.returnValue = "要離開頁面了喔!";
});

網路上找過很多方法,都無法work
請問是否有什麼方法或建議可以來偵測的到事件呢?
還請各位大神給點方向/建議,謝謝

ccutmis iT邦高手 2 級 ‧ 2023-03-21 11:40:15 檢舉
可以參考看看:
https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW5
-----
在 支持的事件 裡有提到 : unload請改用 pageshow 和 pagehide 事件。
breakgod iT邦新手 2 級 ‧ 2023-03-21 11:44:04 檢舉
你好,謝謝你,這文章我有看過,在我的上面問題的程式碼中,我就是使用pagehide 事件,但仍抓不到事件。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
ccutmis
iT邦高手 2 級 ‧ 2023-03-21 13:53:30

好久沒有土法煉鋼的回答問題了。

以下是剛才亂試試出來的效果給樓主參考,
我沒有ios的設備能測,是用M1的Safari(ver.16)測的,
按F5或關閉Tab是能彈出對話框詢問是否離開...

希望有幫助。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TEST onbeforeunload IN SAFARI</title>
<script>
window.onbeforeunload  = function(e){
  console.log('You Try to Close Tag or Refresh This Page.');
  e.returnValue = 'onpagehide';
}
</script>
<body>
<h1><a href="http://www.webkit.org/">TEST : 導向另一個網頁,不會觸發 onbeforeunload 事件</a></h1>
<h2> 按 F5 或 關閉 Tab 會觸發 onbeforeunload 事件.</h2>
</body>
</html>

看更多先前的回應...收起先前的回應...
breakgod iT邦新手 2 級 ‧ 2023-03-21 14:27:27 檢舉

謝謝你,不過我這問題,就是有試過onbeforeunload不行,於是才更換成pagehide,但這個也依舊不行,所以才來此詢問的。

ccutmis iT邦高手 2 級 ‧ 2023-03-21 14:30:48 檢舉

你有沒有先用一個測試頁跑我寫的code看看?
這樣寫(雖然它看起來還是 onbeforeunload) 在SAFARI上當你關閉TAB或Refresh它是會觸發事件的哦!
如果這樣還是不行,那...我就沒招了XD

breakgod iT邦新手 2 級 ‧ 2023-03-21 14:42:29 檢舉

你好,我有用iphone手機run過你的程式,我把console換成alert,使用重新整理,並沒有彈出訊息來,所以還是不行了,謝謝你的幫忙^^
https://ithelp.ithome.com.tw/upload/images/20230321/20137870ukDXEU6z2M.jpg

ccutmis iT邦高手 2 級 ‧ 2023-03-21 14:48:17 檢舉

/images/emoticon/emoticon82.gif 那只能等大師出手了~

ccutmis iT邦高手 2 級 ‧ 2023-03-22 11:26:37 檢舉

img
昨天在家想到,我沒ios但我有iphone模擬器呀,測試果然:

  • macos 的 safari 能 work
  • iphone SE3 的 safari 不能 work
breakgod iT邦新手 2 級 ‧ 2023-03-22 14:55:54 檢舉

哈哈哈,對呀,就是iphone手機上沒辨法work,所以很苦腦,上來問看看有沒有其他我沒有試過的方法^^

我要發表回答

立即登入回答