• ベストアンサー

JavaScriptの・・・。

JavaScriptのwindow.close()メソッドについてなのですが、 これはフレームを使ったページでは使えないのでしょうか? ページが閉じてくれないんです。 フレームページを閉じる方法を ご存知の方、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#9414
noname#9414
回答No.2

通常、ウィンドウを閉じるときには、どれを対象にするかを明記しておいた方が、 プログラム自身がわかりやすく、また後から自分で読むときにも迷わないですみます。 そこで、ウィンドウを閉じる関数は、window.close()ですが、自分自身を 閉じるのであれば、self.window.close()とすれば閉じてくれますし、 親ウィンドウならば、parent.window.close()とすれば、閉じたはずです。 #警告は自分でつけないと、なにも聞かずに閉じることになりますので・・・ フレーム付きのウィンドウなのであれば、 元ウィンドウ  ->フレームで分けたウィンドウ(その1)  ->フレームで分けたウィンドウ(その2) という風になっているわけですから、ブラウザ自体を閉じたければ、元ウィンドウ つまり、フレーム側からみて、親ウィンドウを閉じてあげなければなりません。 #これは、kamuy様が仰るとおりです。 また、フレームの中だけを閉じたい(つまり、元に戻したい)という場合は、 面倒ですが、HTMLのAタグと同様に、読み込ませたいURLを、target="_top"で 読ませれば、問題なくできるはずです。 間違えていたらご指摘ください。 #ちょっと、手元にJavaScriptの本がないので・・・ #後で、確認したら、再書き込みします。 ではでは☆

takucoo
質問者

補足

大変参考になりました。ありがとうございます。

その他の回答 (2)

  • kamuy
  • ベストアンサー率32% (51/156)
回答No.3

補足確認しました。 ちょっとだけ考え方を変えれば分かると思います。 (考え方が固定化されてしまっているのかも) まず、「Kanata」様ご指摘のように、各ウィンドウやフレームに 各々意味を持ち、かつ、分かりやすい名前を付けてみましょう。 大親を「oya」、各項目から選んだ子供を「kodomo」、 「kodomo」を親としてその中に出てくるフレームのを「mago-A」「mago-B」、 という感じ。 ここで重要なのは、「kodomo」のウィンドウも親であるということです。 あとは簡単ですね。 クローズボタンを「mago-B」に設けた場合、そのボタンの機能は 「 kodomo.window.close() 」(←こんなコードはなしか?) という感じになりますよね。 実際のサンプルコードをサラサラッと書けるほどの技量がないので、 作文になってしまいましたが、ご参考まで。

takucoo
質問者

補足

どうもありがとうございます。 とてもよく分かりました。

  • kamuy
  • ベストアンサー率32% (51/156)
回答No.1

私はプログラム自体に詳しくないのですが、 閉じようとしている「ページ」というのは、 「ブラウザ自体(ウィンドウ)」のことでしょうか? それとも、「ウィンドウ内のとあるフレーム」のことでしょうか? もし前者であるなら、 closeメソッドはメインとなる親ページに入れないといけないのでしょうし、 後者であるなら、 フレームの数を減らした新しい親ページをロードし直す ということになるのではないでしょうか? ちょっと状況が分かりづらかったものですから、 横槍を入れさせていただきました。 補足する情報などがありましたら、 http://www.okweb.ne.jp/help.php3#7_1 を参考に「補足」してみて下さい。

takucoo
質問者

補足

説明が足りなくて申し訳ありませんでした。 1.まず、親ページがあります。 2.親ページには項目がいくつかあり、そのひとつをクリックすると、   子ページが別ウィンドウで開きます。 3.その子ページは(上下の)フレームのページになっています。 4.子ページの上側フレーム内に”閉じる”ボタンをつけたいのです。 5.その“閉じる”ボタンにより、子ページウインドウ(ブラウザ自体)を   閉じるにはどのようにしたらよいのでしょうか。 わかりずらい説明になってしまいましたが、よろしくお願い致します。

関連するQ&A