リロードしてもウィンドウオブジェクトを保持しておく方法(javascript)

ウィンドウをリロードするとグローバル変数に保存していた子供のウィンドウオブジェクトがわからなくなる(当然)。 その場合は、以下の方法が考えられる。

そのウィンドウ(W2)に親ウィンドウ(W1)がいる場合

その親にグローバル変数を持たせて以下のようにする

// W1
var child;

// 子供のウィンドウを生成するウィンドウ(W2)
window.opener.window.child = window.open('URL', 'mySon');

同じ名前でURL無指定

window.open()にURL無指定で同じウィンドウ名を指定すると同じ名前なので見失った子供のウィンドウオブジェクトを生成できる。

var child;

if (child == undefined) {
  child = window.open('', 'mySon');
}

ただし、子供すでにいない場合は空白のウィンドウを生成してしまう。