プロが教える店舗&オフィスのセキュリティ対策術

おせわになっております。

サブウィンドウから親ウィンドウのファンクションを起動する方法について困っています。

親ウィンドウから
var subWin = window.open("a.html", "sub")
でオープンしたサブウィンドウを閉じる場合に

サブウィンドウから親ウィンドウの
function sub_close() {
subWin.close();
}
を呼び出して閉じる処理をしています。
(サブウィンドウでwindow.opener.sub_close())
#これは正常に処理されます。

ここで問題なのですが、サブウィンドウがフレームの場合に、フレームセットされたHTMLから
window.opener.sub_close()
というような方法では親画面の操作ができないのでしょうか?(できませんでした。)

初歩的な質問で申し訳ないのですが、何かよい方法があれば教えてください。
宜しくお願いします。

A 回答 (3件)

開いたフレームの片方を閉じるのではなく、


windowで開かれたフレームをwindowごと閉じる
という意味ですよね?

parent.opener.sub_close()

すなわち自分を開いているのはparentでopenerは
parentを開いているので、自分とopenerは
parentを経由してアクセスします。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
yambejpさんのおっしゃることが意図するところでした。
yambejpさんの方法でうまくいきました。
また、勉強させていただきました。

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

お礼日時:2006/04/14 13:53

#1の


<a href="t_menu.htm" target="_top">メニューのみにする</a>
window.open('t_menu.htm','_top');
は、
<a href="frame1.html" target="_top">フレーム1のみにする</a>
window.open('frame1.html','_top');
の間違いでした

この回答への補足

frame1.htmlから親画面のファンクションを呼び出したいのですが、
frame1.htmlからwindow.openerが許されないようです。

補足日時:2006/04/14 13:20
    • good
    • 0
この回答へのお礼

私の意図するところとは別のものでしたが
大変勉強になりました。
ありがとうございました。

お礼日時:2006/04/14 13:54

例えば、画面がフレームで2分割されていて


その中身が
frame1.html
frame2.html
だとして、
frame2.html の中で画面をframe1.html のみにしたいのだとしたら
単にframe2.html で
<a href="t_menu.htm" target="_top">メニューのみにする</a>

同様のことをスクリプトで
window.open('t_menu.htm','_top');
とすればいいように思います。
    • good
    • 0

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