いくつかのクリーンアップ操作を行うために onunload イベントを発生させたいのですが、複数のタブ (Navbar) が異なる Web ページへの複数のリンクを表示しています。他の jsp が起動されます。これを解決するのを手伝ってください。ユーザーがそのページでブラウザを閉じたときにアンロード関数が呼び出されるようにします。
3 に答える
onunload イベントをどのように機能させたのかわかりません.... onunload イベントの使用に関して私が見つけた問題は、ページがアンロードされた後に発生することです。これは、ページがアンロードされたため、これ以上 JavaScript を実行できないことを意味します。
onbeforeunload イベントの使用を検討する必要があります。このイベントは少しユニークです。このイベントを処理する関数が何かを返すと、操作を続行するかどうかをユーザーに尋ねるポップアップが表示されるからです。したがって、あなたの場合、関数が何も返さないことを確認してください。onbeforeunload イベントについて注意すべきもう 1 つの点は、現時点では Opera がサポートしていないことです (ただし、Safari、FireFox、および Internet Explorer はサポートしています)。
ページがアンロードされるたびに、onbeforeunload イベントと onunload イベントの両方が実行されます。ページ上のコントロールがページをサーバー コードに送信すると、ページはアンロードされ、JavaScript が実行されます。
ページ上のコントロールがサーバーに送信するときに JavaScript を実行したくない場合は、コードを実行する必要があるかどうかを確認するものを実装する必要があります。
これは簡単です。JavaScript ブール値をページに追加し、このブール値を true に設定する関数を追加します。サーバーコードにポストバックするページ内のすべての要素が、ページを送信する前に、このブール値を true に設定していることを確認してください。onbeforeunload イベントでこのブール値をチェックして、クリーンアップ コードを実行する必要があるかどうかを確認します。
お役に立てれば、
-フリニー
アンロード関数はグローバルスコープで作成されているようです。実行したいページにのみその関数を配置してみてください。
フレームセットのページはありますか? フレームセットから離れたときに通知を受け取りたいですか? フレームセットに onbeforeunload を追加します。クリーンアップの意味がわかりませんが、ブラウザ間で安全にアンロード中に XHR を送信することはできません