3

ウィンドウがアンロードされる前に、jquery ajax() 関数を呼び出す必要があります。私の場合、それは POST であり、返される結果は気にしません。データベースを更新したいだけです。

したがって、答えは関数を unload イベントにバインドすることです。つまり、jquery unload() 関数を使用し、その関数が ajax 呼び出しを行います。さらに、同期パラメーターを呼び出しに追加することになっていることも知っています。つまり、async: false を jquery ajax() 呼び出しに追加します。

しかし、私はこれをすべて試しましたが、IE8 では動作しません! 何度もテストしましたが、IE8 では動作しません。Firefox と Chrome で正常に動作します。

さらに奇妙なことに、IE8 アプリケーション全体を閉じた後、呼び出しが成功したように見えます。キャッシュされていますか?

したがって、他の人は、jquery bind() を使用してアンロードする前に ajax をバインドすることを提案しています。ただし、これがすべてのブラウザーで機能するかどうかについては、さまざまな回答があるようです。

これは「ハック」方法のように見えるため、まだ beforeunload を試していません。ただし、機能する場合は、機能する限り気にしません。

4

1 に答える 1

0

ページのbodyタグ内で関数を呼び出せませんか?

<body onbeforeunload="funcName(param)">

そうすれば、ページがアンロードされるたびに関数が呼び出され、バインドについて心配する必要がなくなります。

于 2011-03-28T17:58:59.523 に答える