• ベストアンサー

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

  • JavaScriptについて

    JavaScriptを使っています。 http://www.scollabo.com/banban/jsindex/sample/sample_004.html このサイトを参考にしていて、上記のページでalert メソッドを調べていたら、 windowオブジェクトのメソッドという使い方は理解でき ましたが、 Formオブジェクトのメソッドとしての使い方が不明です。 Formオブジェクトではどのように使うのでしょうか? 教えてください。

  • ウインドウ元のURLをフレームごとかえる

    小ウインドウを開いて、URLをクリックすると元のページのURLがかわるという方法を教えてください! 下記の書き方だと、フレームの中に新しいページが表示されてしまいます。 フレームごと書き換えるには、どうやって書けばよいのでしょう? <script language="javascript"> <!--// function ctrlwin() { window.opener.location.href="http://www.××.html"; window.close(); } //--> </script>

  • FireFoxでJavascript「window.close()」が効きません。

    別ウィンドウを開いて「閉じる」ボタンをクリックするとウィドウを閉じる、というレイアウトを作成しているのですが、 <A HREF="javascript:window.close()">ウインドウを閉じる</A> では、firefoxでは動作しません。 情報を探してみて、以下のようなソースが有効なようなのですが、 <head>の中に以下を記述。 <script type="text/javascript" language="JavaScript"> <!-- function close_win(){ var nvua = navigator.userAgent; if(nvua.indexOf('MSIE') >= 0){ if(nvua.indexOf('MSIE 5.0') == -1) { top.opener = ''; } } else if(nvua.indexOf('Gecko') >= 0){ top.name = 'CLOSE_WINDOW'; wid = window.open('','CLOSE_WINDOW'); } top.close(); } --> </script> で、閉じるボタンを置きたい場所に <A HREF="javascript:close_win()">ウインドウを閉じる</A> が、ローカルで見ている範囲ですが、動作しません。 ページ内リンクみたいにページトップに戻るだけ。。。 ちなみにIEとネスケでは正常に動作しました。 どなたかお分かりになる方、ご教授願えませんか? 宜しくお願いします。

  • javascriptですか?

    初心者です。 これはjavascriptなのでしょうか? <a href="javascript:window.close()">閉じる</a> javascriptと書いてあるので、多分そうなのだと思いますが、この場合、これだけを記述すればいいのでしょうか? 本などにはjavascriptを記述する際に、 <script language="JavaScript"> <!-- //--> こんなのを書きなさい見たいな事も書いてあったのですが、どうなのでしょうか、ちなみに書かなくてもちゃんと使えるのですがどちらが正解ですか? 変な質問ですが、よろしくお願いします。

  • windowの閉じるボタンについて(JavaScript)

    今日、二度目の質問になりますが、またまた困ってます・・・ いろいろ調べてみてはいるのですが、windowの「閉じる」ボタンについてお聞きしたいです。 javascriptで、「window.close()」でも閉じれるのですが、閉じるときのメッセージ(alertの確認メッセージ)を独自なものにする方法はないのでしょうか? また、<a href="">で、閉じる方法もあるのですが、リンクで閉じるのではなくて、ボタンで閉じたく考えております。

  • javascriptで別窓で出したページとメインページで同時に動作を行ないたいのですが、教えて下さい。

    javascriptで別窓で出したページを登録ボタンを押すと、そのページが閉じて メインページがボタンを押したことで、切り替わるという動作を行ないたいのですが、 良い方法はありますか?教えてください。 <INPUT type='button' value='登録' onClick=\"opener.location.href='$order'\"> <A href=\"javascript:click_close();\">ウィンドウを閉じる</A> 今は、2つのリンクを貼っています。これを一つにしたいのですが、ご伝授下さい。 function click_close () { window.close(); }

  • JavaScriptでPDFを新規ウィンドウで表示したいのですが

    「リンクをクリックするとPDFファイルが新規ウィンドウで立ち上がる」というプログラムを JavaScriptで作成しようとしているのですが、その際の新規ウィンドウのスタイルを 設定する方法が分からなくて困っています…… HTMLファイルならWindow.Openメソッドで新規ウィンドウのスタイルを設定できますが、 PDFファイルではその方法が使えないのです…… どなたか、JavaScriptを使ってPDFファイルのウィンドウスタイルを設定する方法を ご存知の方はいらっしゃらないでしょうか? よろしくお願いします……

  • JavaScriptでのリロードについて

    ネットで調べていましたが解決する事ができませんでしたので投稿しました。 宜しくお願いします。 ページ間の制御について質問します。 Aページから別ウィンドウを開いてBページを表示しています。 Bページではデータの入力画面→確認画面→完了画面の流れで処理をしています。 Bページの完了画面には別ウィンドウでCページを表示するボタンがあります。 ※Cページを表示する際にBページを閉じています。 Cページではファイルのアップロード画面→確認画面→完了画面の流れで処理をしています。 Cページの完了画面にはCページを閉じてAページをリロードしていますがうまく更新できません。 JavaScriptのソースは下記の通りです。 if(!window.opener || window.opener.closed){ } else{  window.opener.location.reload(); } window.close(); ※このJavaScriptはCページのボタンのonClickに指定しています。 試しに単体で下記のJavaScriptのソースを指定してみましたが駄目でした。 window.opener.opener.location.reload(); どのようにすればCページを閉じてAページをリロードする事ができますか。 似たような内容で申し訳ありませんがご教授、宜しくお願いします。 では、失礼します。

  • javascriptで画面を閉じる

    javascriptの画面を確認ダイアログでOKの時、閉じる処理の実装をどのようにするか考えています function back(){ if( confirm("入力内容は保存されませんがよろしいですか?")){ alert("OKが押されました"); window.close(); } else{ alert("キャンセルが押されました"); } } <div id="button"> <input type="button" name = "back" onClick="back()" value="戻る" /> </div> こんな感じに書いているのですが、[window.close();]が実行されません alertの部分はOKもキャンセルも呼ばれるのですが閉じる処理が呼ばれません 調べてwindow.close()で画面を閉じることができるというのは見つけたのですがそもそも使い方が 間違っているような気がします。 どの点が間違っているか、解決方法をお願いします。

  • Html CSS JavaScript での印刷制

    現在、htmlページにボタンを置いて、そのボタンが押されたら 印刷の処理を行おうとしているのですが、 その印刷の際に、印刷のプリンタ選択の ダイアログボックスを出さずに印刷をすることは可能でしょうか? Html,css,JavaScript この三つのうち、どれかで制御ができないかと 探してみているのですが、成果が出ません。 方法をご存知の方、 方法が記述されたページをご存知の方、 ご教授お願い致します。 現在、印刷はJavaScriptを使用し、 OnClickイベントで、window.print()を実行させ、 印刷を行おうとしています。