OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

JavaScriptの・・・。

  • 暇なときにでも
  • 質問No.1517
  • 閲覧数253
  • ありがとう数13
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 53% (8/15)

JavaScriptのwindow.close()メソッドについてなのですが、
これはフレームを使ったページでは使えないのでしょうか?
ページが閉じてくれないんです。
フレームページを閉じる方法を
ご存知の方、よろしくお願いいたします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2

通常、ウィンドウを閉じるときには、どれを対象にするかを明記しておいた方が、
プログラム自身がわかりやすく、また後から自分で読むときにも迷わないですみます。

そこで、ウィンドウを閉じる関数は、window.close()ですが、自分自身を
閉じるのであれば、self.window.close()とすれば閉じてくれますし、
親ウィンドウならば、parent.window.close()とすれば、閉じたはずです。
#警告は自分でつけないと、なにも聞かずに閉じることになりますので・・・

フレーム付きのウィンドウなのであれば、
元ウィンドウ
 ->フレームで分けたウィンドウ(その1)
 ->フレームで分けたウィンドウ(その2)
という風になっているわけですから、ブラウザ自体を閉じたければ、元ウィンドウ
つまり、フレーム側からみて、親ウィンドウを閉じてあげなければなりません。
#これは、kamuy様が仰るとおりです。
また、フレームの中だけを閉じたい(つまり、元に戻したい)という場合は、
面倒ですが、HTMLのAタグと同様に、読み込ませたいURLを、target="_top"で
読ませれば、問題なくできるはずです。

間違えていたらご指摘ください。
#ちょっと、手元にJavaScriptの本がないので・・・
#後で、確認したら、再書き込みします。
ではでは☆
補足コメント
takucoo

お礼率 53% (8/15)

大変参考になりました。ありがとうございます。
投稿日時 - 0000-00-00 00:00:00
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 32% (51/156)

私はプログラム自体に詳しくないのですが、 閉じようとしている「ページ」というのは、 「ブラウザ自体(ウィンドウ)」のことでしょうか? それとも、「ウィンドウ内のとあるフレーム」のことでしょうか? もし前者であるなら、 closeメソッドはメインとなる親ページに入れないといけないのでしょうし、 後者であるなら、 フレームの数を減らした新しい親ページをロードし直す ということになるのではな ...続きを読む
私はプログラム自体に詳しくないのですが、
閉じようとしている「ページ」というのは、
「ブラウザ自体(ウィンドウ)」のことでしょうか?
それとも、「ウィンドウ内のとあるフレーム」のことでしょうか?

もし前者であるなら、
closeメソッドはメインとなる親ページに入れないといけないのでしょうし、
後者であるなら、
フレームの数を減らした新しい親ページをロードし直す
ということになるのではないでしょうか?

ちょっと状況が分かりづらかったものですから、
横槍を入れさせていただきました。

補足する情報などがありましたら、
http://www.okweb.ne.jp/help.php3#7_1
を参考に「補足」してみて下さい。
補足コメント
takucoo

お礼率 53% (8/15)

説明が足りなくて申し訳ありませんでした。

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

わかりずらい説明になってしまいましたが、よろしくお願い致します。
投稿日時 - 0000-00-00 00:00:00


  • 回答No.3
レベル11

ベストアンサー率 32% (51/156)

補足確認しました。 ちょっとだけ考え方を変えれば分かると思います。 (考え方が固定化されてしまっているのかも) まず、「Kanata」様ご指摘のように、各ウィンドウやフレームに 各々意味を持ち、かつ、分かりやすい名前を付けてみましょう。 大親を「oya」、各項目から選んだ子供を「kodomo」、 「kodomo」を親としてその中に出てくるフレームのを「mago-A」「mago-B」、 ...続きを読む
補足確認しました。
ちょっとだけ考え方を変えれば分かると思います。
(考え方が固定化されてしまっているのかも)

まず、「Kanata」様ご指摘のように、各ウィンドウやフレームに
各々意味を持ち、かつ、分かりやすい名前を付けてみましょう。

大親を「oya」、各項目から選んだ子供を「kodomo」、
「kodomo」を親としてその中に出てくるフレームのを「mago-A」「mago-B」、
という感じ。

ここで重要なのは、「kodomo」のウィンドウも親であるということです。
あとは簡単ですね。
クローズボタンを「mago-B」に設けた場合、そのボタンの機能は
「 kodomo.window.close() 」(←こんなコードはなしか?)
という感じになりますよね。

実際のサンプルコードをサラサラッと書けるほどの技量がないので、
作文になってしまいましたが、ご参考まで。
補足コメント
takucoo

お礼率 53% (8/15)

どうもありがとうございます。
とてもよく分かりました。
投稿日時 - 0000-00-00 00:00:00
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ