[2014-09-25 追記] iOS8 Safariではload/unloadがdepricatedになって、pageshow/pagehideという名前になりました。これに伴い、下記で使っていた従来のpageshow/pagehideは廃止。 以下の記事はiOS7もしくはそれ以前の情報です。 iOS Safariではonbeforeunloadがトリガーされません。 onunloadはキャッシュの条件によってトリガーされたりされなかったりするようです。 onpagehideを使いましょう。 window.onpagehide = function() { navigator.geolocation.clearWatch id }; geolocation APIのclearWatchを実行するタイミングを探していて上記結論となりました。 ちなみに、geolocation APIでwat