SSブログ

【Tips】iPad でポップアップの window.onunload 代替え処理を実装 [iOS]

個人的には Web システムで window クローズ系イベントをトリガーとする処理は実装しない方がよいと思いますが、仕事上で改修の必要に迫られたので調べてみました。

iPad に搭載されている Safari Mobile では、window.onload や window.onunload イベントが発生しません。

ロード時には代替えイベントがあるし、ポップアップ(window.open で開いたウィンドウ)でなければアンロード時の代替え方法もあるんだけど、ポップアップのアンロードではちょっとハマりかけました。

window.onpagehide は来るタイミングが遅いし、body.onunload は来ませんでした。

JavaScript でクローズ処理が書けるなら、以下の方法が使えるようです。

$(window).bind("pagehide", null, function() { /* イベント処理 */ });
   ・・・
window.open("about:blank", "_self").close();


ブランクで window のアンロードを発生させることで、期待通りのタイミングで onpagehide イベントを発生させる…という流れですね。

しかし残念なことに、Safari Mobile タブ上の × ボタンでクローズされると、この実装は役に立ちません。 


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。