ポップアップ (Mobile Safari の新しいタブ) を開く一連のページがあります。これらの各ポップアップは、フォーカスされているかどうかを知る必要があります。デスクトップでは、 と を使用window.onblur
しwindow.onfocus
てこの動作を駆動します。ただし、これらのイベントはいずれも iPad では機能しません。私も試しwindow.onpageshow
てみwindow.onpagehide
ましたが、どちらも適切なタイミングで起動していないようです。テスト HTML ファイルがあります。
<html>
<head>
<script language="javascript">
console.log('Hello');
window.onblur = function(e) { console.log('blur'); };
window.onfocus = function(e) { console.log('focus'); };
window.onpagehide = function(e) { console.log('pagehide'); };
window.onpageshow = function(e) { console.log('pageshow'); };
</script>
</head>
<body>
<a href="http://www.google.com" target="_blank">Click Me</a>
</body>
</html>
理論的には、「Click Me」をクリックすると、新しいウィンドウが表示されたときにぼかしイベントが発生するはずです。しかし、これは Mobile Safari では起こりません。タブを閉じようとしているときを検出するのに役立つだけですonpagehide
。onpageshow
Mobile Safari で探している動作を取得するにはどうすればよいですか? それはまったく可能ですか?