「親」ウィンドウを持つアプリケーションがあります。親ウィンドウには、次のようなメニュー項目があります (ここでは PHP を使用)。
// sample link
echo "<li><a href=\"#\" onclick=openurl('covershift.php');>Shift Coverage</a></\
li>";
// logout link
echo "<li><a href=\"#\" onclick=openurl('logout');>Logout</a></li>";
各リンクは、適切なページを別の「子」ウィンドウで開きます。親ウィンドウを閉じると、すべての子ウィンドウを閉じる必要があります。この機能を Javascript で実装しました。ここに関数があります。
var childWindow = new Array();
var windowCount = 0;
function openurl(url)
{
if(url != 'logout') {
childWindow[windowCount]=window.open(url,'_blank','height=600,width=800,scr\
ollbars=1');
windowCount++;
if (window.focus) {
childWindow.focus();
}
} else {
var iCount;
for (iCount=0; iCount < windowCount; iCount++) {
if ((childWindow[iCount] != null) && !(childWindow[iCount].closed)) {
childWindow[iCount].close();
}
}
window.location='logout.php';
}
}
これが私の問題です。ユーザーが親ウィンドウをリロードしてからログアウトをクリックすると、子ウィンドウが開いたままになります。親がリロードすると childWindow 配列が失われるため、これは理にかなっています。
リロードによって childWindow 配列を永続化するにはどうすればよいですか?
ありがとう!