ページのアンロードにはさまざまな理由が考えられます
。1ユーザーが現在のウィンドウを閉じます。
2ユーザーが別の場所に移動します。
3 [戻る]、[進む]、[更新]、または[ホーム]ボタンをクリックします。
4ユーザーがフォームを送信すると、ブラウザは現在のページのアンロードとフォーム送信の結果を含むページのロードを開始します。(現在のウィンドウがフォームのターゲットであると想定します)。
5など...
onunloadハンドラーで、アンロードの理由がp.4、つまりフォーム送信の結果を含むページに移動することをどういうわけか知ることができますか?
フォームを送信するときにフラグを定義することはできますが、これでは問題は解決しません。Webサーバーからの応答(フォーム送信時)には時間がかかるため、ブラウザーは現在のページをすぐにアンロードせず、サーバーからの応答を待ちます。そして、この待機中、ユーザーはウィンドウを閉じたり、どこにでも移動したりできます。そして、それが実際に結果ページに移動したのか、それとも他の何かに移動したのかを知る必要があります...?
2090 次
2 に答える
1
これらのイベントの一部を乗っ取ることができます。
たとえば、リンクの場合、href
属性を保存し、必要な処理を実行してから、変数に保存した に設定window.location
するhref
イベント ハンドラーをリンクに追加できます。
于 2010-04-27T04:40:45.993 に答える
0
ページのアンロードの正確な理由は、アンロード ハンドラーではわかりません。OnUnload イベントは標準ではなく、最初に IE によって実装されました。
ブラウザーが異なれば、それを異なる方法で処理し、さまざまなケースでイベントを発生させる可能性があります。
したがって、アンロード ハンドラーでアンロードの理由を知りたい場合は、運が悪い可能性があると思います。ただし、アレックスが回答で指摘したように、それらのリンクのクリック ハンドラーをよりインテリジェントにすることで、ユーザーがページ上のリンクをクリックしてページから移動することをおそらく知ることができます。
于 2010-04-27T05:28:49.183 に答える