ページの親ウィンドウがいくつかの子ウィンドウクローズイベントをリッスンしています。子ウィンドウが閉じている場合、そのページはグリッドビューでポストバックを行います。したがって、親ページは再ロードされず、window_dictionaryは 'リセット'されません。次のコードでは、ウィンドウオブジェクトをグローバルJavaScript辞書に値として追加します。オブジェクトにはキー(「clickedRow」+レコードidの組み合わせ)が含まれ、値はウィンドウオブジェクトです。複数の子ウィンドウのクローズイベントをリッスンし、複数の子ウィンドウが閉じられたかどうかを確認することはできません。
最初のウィンドウクローズイベントでは正常に動作しますが、次のウィンドウクローズイベントでは正常に動作します。たとえば、2つの子ウィンドウを開くと、最初のウィンドウを閉じることができ、__dopostback()メソッドが呼び出されますが、残りのウィンドウを閉じると__dopostback()は呼び出されません。
setInterval呼び出しに問題があると想定します。しかしながら;私はしばらくの間立ち往生しており、これが期待どおりに動作することはできません。
すべてのウィンドウが閉じているため、私はポストバックを行いたいと思います。
コード
var openedWindows = {};
setInterval(checkIfWindowIsClose, 40);
function openThisWindow(popLoc, attributes, id) {
var winInst = window.open(popLoc, attributes, id);
openedWindows["clickedRow" + id] = winInst;
}
function checkIfWindowIsClose() {
var id = "";
for (var i in openedWindows) {
if (openedWindows[i].closed) {
// i is the id of your window and here you know that your window with id i has been closed
// here remove also the window from the object otherwise you will keep also the instance of the closed one
console.log(i);
delete openedWindows[i];
id = (' ' + i).slice(1);
id = id.replace("clickedRow", "");
}
}
if (id !== "") {
__doPostBack('upInspectionList.UniqueID', id.toString());
id = "";
}
}
checkChildは何も返さないので、timerの値は何でしょうか。 –
@manikantgautam、私は質問の目標を理解しているか分からない。辞書の1つのウィンドウについてのみ聞くことができるので、JavaScript辞書の追加されたすべてのウィンドウを聴くことができますか? –