2011-07-19 1 views
1

私はユーザーがサイトを離れたときにデータベースを更新したいと思います。私は私のサイトのためにPHPを使用しています。私はjavascript関数onbeforeunloadを使用して、データベースを更新するためにajaxを通してphpを呼び出しています。onbeforeunloadの代わりに

問題は、OperaとSafariではonbeforeunload関数がサポートされていないため、データベースからエントリを削除する必要がありますが、それでもデータベースとサイトに影響があります。

私は何ができるでしょうか?

+0

あなたは '[W3Schoolsの](http://www.w3schools.com/jsref/dom_obj_event.asp)によって提供されるリストにonbeforeunload'見ることができない を参照してください。なぜあなたはそのイベントを使うべきですか?リストにある 'onunload'イベントを使用するのに不適切なものにするための要件は何ですか? –

+0

私はデータベースを更新するためにajaxを通してPHPを呼び出すことはできません。 – coder1087

+0

"W3Schoolsで提供されているリストでは、あなたはなぜこのイベントを使うべきなのでしょうか? W3Sはあなたのお父さんか何かですか? onbeforeunloadだけが実行できる正当なユーザーインタラクションがたくさんあります。 GmailとFacebookの両方がそれを使用しています。それがW3Sのローロデックスにあるかどうかはほとんど意味しません。 – Amalgovinus

答えて

0

OnBeforeUnloadはSafariでサポートされている - どのようなサポートされていないことはAJAXを使用することである...あなたは同期呼び出しを使用する必要があります - あなたはこれを確認するためにalertを使用することができます。 ....

+0

はい、そうです。それについてもっと教えていただけますか? – coder1087

+0

@xtremehunger - あなたは何を知りたいですか? – ManseUK

2

onbeforeunloadは、Microsoftの商標です。 FirefoxはSafariとOperaの間に実装していませんでした。
http://www.designerstalk.com/forums/help-me/46310-onbeforeunload-safari-issues.html

代わりにwindow.onunloadイベントを試してください。
https://developer.mozilla.org/en/DOM/window.onunload

例:

function unloadPage() { 
    alert("unload event detected!"); 
} 
window.onunload = unloadPage; 
+0

ありがとう、私はポップアップアラートを知っているが、これは私のajaxを実行するつもりはない。 – coder1087

+1

これはその例です。 – Mike