このトピックに関する質問はたくさんありますが、私の状況が解決されていないので、私のシナリオについて説明します。
ポップアップウィンドウがあります。閉じるには 2 つの方法があります。ポップアップ ウィンドウ内の閉じるボタンを押すか、ウィンドウの右上隅にある [x] ボタンを押します。それらはまったく同じ効果があります。x を無効にすることができればそうしますが、それは不要であり、お気に入りのブラウザーですぐに発生することはありません。本質的に、私はウィンドウが閉じられたときにいくつかの後処理を行っており (実際にはセッションのクリーンアップ)、ユーザーを苛立たせるために無限の新しいポップアップ ウィンドウを生成していません。私を信じてください、顧客はこの動作を求めました.
したがって、window.onunload を実行するか、body onunload を実行できます。どちらの方法でも、希望する結果が得られます。ただし、問題を複雑にする 3 つ目のシナリオがあります。ポップアップ ウィンドウ内で、そのポップアップ ウィンドウの内容を変更するフォーム送信が存在する場合があります。この場合、自分のページでどちらを設定したかに応じて、window.onunload または body unload が呼び出されます。これは私が望むものではありません。ポップアップウィンドウが視覚的に見えなくなったときに後処理を実行したい(xまたは閉じるボタン)が、フォームの送信が行われたときにポップアップをこの画面に表示したままにして後処理しないでください。
誰でもこのシナリオについて話すことができますか?
編集: window.onunload をトリガーしないソリューションでの私の試み
function searchFieldTitles()
{
var searchOptionValue;
var radioObj = document.getElementsByName("searchOption");
var radioLength = radioObj.length;
for(var i = 0; i < radioLength; i++) {
if(radioObj[i].checked) {
searchOptionValue = radioObj[i].value;
break;
}
}
$.get("/myroot/SearchFieldTitles.action",
{filterString: document.getElementsByName("filterString")[0].value,
searchOption: searchOptionValue,
filterBy: document.getElementsByName("filterBy")[0].value},
function(data) {
});
location.href="/myroot/jsp/field_titles/lookupFieldTitles.jsp";
}