プロが教えるわが家の防犯対策術!

新しく開いたウインドウから、元のウインドウにフォーカスを戻す際にif文でwindowのopenerプロパティのclosedがtrueかfalseかを判定しようとしているのですが、ブラウザがIEですと「RPCサーバが利用できない」といった感じのエラーが出ます。
何かほかに回避策があれば教えていただきたいのですが…。よろしくお願いします。

A 回答 (2件)

『新たにウインドウを呼び出し、そこに元の親ウインドウのURLを持ってくる』のであれば、必ずそうするように記述すればよいと思います。



function hoge2(URL){ // URL:元の親ウインドウURL
//強制的に親ウィンドウを閉じる
window.opener.close();

//新たにウィンドウ呼び、元URLを持ってくる
NewWin = window.open("","NewWindow");
NewWin.location.href = URL;

//フォーカス
NewWin.focus();

return true;
}

ただし、親ウィンドウを強制的に閉じるので、「いいですか?」と毎回聞かれることになります。
ちょっとウザいですね。
    • good
    • 0
この回答へのお礼

みなさん、丁寧な回答をありがとうございました。
結局今回は、別の方法で代用という結果になりましたが、今後別の場面でみなさんの書いてくださった情報を活用したいと思います。
いつまでも解放していてもなんなので、ここで回答を締め切らせていただきます。

ありがとうございました。

お礼日時:2001/03/04 17:54

まず、windowオブジェクトのclosedプロパティはIEではうまく機能しないことがわかっています。


(nicolaさんだけじゃないです。安心してください)

ところで、親ウィンドウにフォーカスを戻すだけが目的ならば、判定などせずに

function hoge(){
window.opener.focus();
return true;
}

でよいのでは?
この場合、親ウィンドウが閉じられていれば、単に何も起こらないだけになります。

この回答への補足

すばやいお返事ありがとうございました。
ちょっと説明が足りなかったのですが、親ウインドウが閉じられている場合は、『新たにウインドウを呼び出し、そこに元の親ウインドウのURLを持ってくる』という処理をしたいのです。
(子ウインドウの方が普通のウインドウならよいのですが、メニューバー等要らないものをいろいろ取り去ってしまっているので…。)
なにかよいアイディアがあれば、ぜひよろしくお願いします。

補足日時:2000/12/08 15:57
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!