• ベストアンサー

親フレームのURLによって、条件分岐する方法。

a-kumaの回答

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> 注意)どこから開かれたかは関係なくです。ですから、window.openerは使わないと思います。 > 本当に初心者ですので、<head></head>の間にいれる、スクリプトをそのまま書いてくれると嬉しいです。 opener がどうこう、と書いておいて、初心者とは言わせない :-) フレームの中に表示されているかどうかは、window.parent がキーになるんじゃ ないか、と。どうやったら、エラーを捕まえられるかなあ。 # 本当に、思い付かない… ああっ、帰りの電車に間に合わないっ! というわけで、スクリプトは勘弁。

nyaryome
質問者

補足

とりあえず、回答ありがとうございます。 window.parentについては、JavaScript辞典に載ってたもので・・・ (理屈がよく分からないので、完全な写し書きしかできません、、、) 「if」とか「window.parent」とか「=」とか「fr.html」 とかを、どうやって書けばよいか分かりません。 何方か詳しい説明お願いいたします。

関連するQ&A

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

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

  • 親フレームの存在確認

    フレームページで、子フレームが単独で呼び出された時にエラーを表示したいです。 親フレームとなるindex.htmlでは、それぞれa.phpとb.phpを呼んでいます a.phpでは、a.htmlを読みこんでいます。 このa.htmlが単独で呼び出された時に、index.htmlにアクセスするようにアラートを表示したいのです。 if(!window.opener || window.opener.closed) を試してみましたが、フレームのある状態でもフレーム無しの処理が走ってしまいます。 何か良い方法、改善点等ありましたら教えてください。 よろしくお願いいたします。

  • 親タブから子タブ開いて親タブへ戻す。

    以前、ここで質問をしたものです。 まだ、解決していません。 window.opener.focusが利かないと質問したものです。 親タブ(ウインドウ)から子タブ(ウインドウ)をひらいて そのリンク先を親タブ(ウインドウ)で制御しようとしています。 自分でいろいろやりましたが、現在chromeのみで動いています。 Firefox、IEでは動いていません。 他に良い方法はないでしょうか? 現在のコードです。 親<index.html> <html> <head> <title>TOPページ</title> <script type="text/javascript"> <!-- var win; // サブウィンドウを開く処理 function disp(url){ win = window.open(url, "oya"); } // --> </script> </head> <body> <p><a href="example_sub8.html" target="_blank" onClick="disp('example_sub8.html')">testサブウィンドウを開く</a></p> </body> </html> 子ウインドウ<example_sub8.html> <html> <head> <title>testサブウインドウ</title> <script type="text/javascript"> <!-- // リンクの処理開始 function disp(url){ if(!window.opener || window.opener.closed){ // メインウィンドウの存在をチェック window.alert('メインウィンドウがありません'); // 存在しない場合は警告ダイアログを表示 } else{ window.blur(); window.opener.focus(); window.open(url,"oya"); //window.opener.location.href = url; // 存在する場合はページを切りかえる } } // リンクの処理終了 // --> </script> </head> <body> <ul> <li><a href="#" onClick="disp('index.html'); return false;">トップページ</a></li> <li><a href="#" onClick="disp('index2.html'); return false;">test2ページ</a></li> </ul> </body> </html>

  • iframeの中から、親frameのURLを操作したい

    iframeの中から、親frameのURLを変更することはできないでしょうか? 現在、iframeの中にcgiのページを表示させてます。 このcgiから、親のURLを変更したいのです。 親Winodw、子Windowの関係なら、JavaScripを使用してこんな感じで 親URLを操作できますが、親frame、子frameの関係の場合はどうすればよいのでしょうか。 opener.location = "http://www.***.com" 宜しくお願いします。

  • フレーム内から開いたサブウィンドウから親ウィンドウの別フレームの操作を行いたい

    メニュー、メインの2つのフレーム分けしてあるページで、メインページからサブウィンドウを開きます。 その後、以下の2アクションを同時に行いたいのです。 (1)サブウィンドウから親ウィンドウ(メイン)をジャンプさせる (main.html→main2.cgi) (2)親ウィンドウ(メニュー)の画像をAからBに変更させる 現在window.openerでメインページの変更はできているのですが、 メニューページの画像のを変更がうまくできません。 方法としては (1)サブから親ウィンドウ(画像=A)を閉じさせて、再び親ウィンドウ(画像=B)を フレームセットごとムリヤリ開き直す。 (2)何らかの形でメニューページの情報を保存しておき、Onloadでサブからのジャンプ時に変更させる (3)サブから親ウィンドウのフレーム越し操作を行なって、メニューページの画像を変更する。 どの方法が可能でしょうか、もっといい方法がありますか。 お知恵拝借させてください。よろしくお願いします。 以下、かなり省略したソース説明です。 【フレームセット→cgi。記述は省略】 <frameset>  <frame src="menu.html" name="menu">  <frame src="main.html" name="main"> </frameset> 【メニュー→html】 <img src="A"> 【メイン→html】 function open_sub(url) { /**/ w = window.open(url, 'sub') } <!--本文--> <a href="javascript:open_sub('sub.html')">サブウィンドウ</a> 【サブ→html】 function change_main() { window.opener.location.href="main2.cgi?sub"; window.opener.focus(); } <!--本文--> <A HREF="JavaScript:change_main()">メインを変更</A>

  • 親ウィンドウの別フレームを子ウィンドウから操作したい

    いろいろ試しているのですが、理解不足のせいでしょうが、どうやってもできません! 内容は以下の通り(分からないのは3)です。どうぞ宜しくお願いいたします。 1:画面を、AとBの2つのフレームに分割しています。 【index.html】 <frameset>  <frame src="A.html" name="A">  <frame src="B.html" name="B"> </frameset> 2:Aフレーム内に記述してあるaaaアンカーをクリックすると、子画面ko.htmlを開きます。 <a href="javascript:void(0)" onclick="window.open('path=ko.html','_blank');">子画面</a> 3:ko.htmlではbbbというアンカーがあって、それをクリックすると、"親画面のBフレームにbbbで指定したリンク内容を表示したい"のです。 <a href="javascript:void(0)" onclick="opener.window.location=('B?path=/home/~/~/ZZZ.html');">開きたいファイルZZZ.html</a> と書くと、openerはAだからAにZZZ.htmlの内容が表示されてしまうので、(全くおかしな記述をしているのかもしれませんが・・・(- -;))あちこち調べながら、 B.opener.window.locationとか、 B.opener.window.location.hrefとか、 parent.B.window.locationとか、 parent.frames[1].window.locationとか、 ほかにもいろいろやってみたのですが、出来ませんでした・・・。 このような別フレームの操作が出来る方法があれば教えてください。 宜しくお願いいたします。

  • 親ウィンドウがフレームの場合の子からの操作

    親ウィンドウが、navi.html, window.html というフレームをもったA.html だった場合、その window.html から子ウィンドウを出して、子ウィンドウから親ウィンドウの全体(A.html) のURLを変えたい場合はどのようなスクリプトになるのでしょうか? どうしても window.html の中だけのURLが変わってしまう、もしくは新しいウィンドウができてしまいます。 宜しくお願いします。

  • 複数フレームで「戻る」ボタンを押すと、1フレームしか戻らない

    お忙しいところ申し訳ありませんが、教えてください。 「複数フレームを同時に書き替える」まではわかったのですが、「戻る」ボタンを押すと、1フレームしかページがもどりません。3フレームに分けているのですが、3フレームが同時に「戻る」ことはjavascriptでできるのでしょうか?ちなみにスクリプトは function viewWin(p1,p2,p3){window.open(p1,"frame1");window.open(p2,"frame2");window.open(p3,"frame3");} です。 基本的な質問だと思うのですが、わからなくて困ってます。どなたか教えてください。よろしくお願いします。

  • フレームにすると

    はじめまして。 javaについては全くの素人です。 お力を貸していただきたくて投稿いたしました。 以下の様なページを作り、 <HEAD> <TITLE>ウィンドウを閉じる</TITLE> <SCRIPT language="JavaScript"> <!-- function CloseWin(){ window.close(); } // --> </SCRIPT> </HEAD> <FORM> <INPUT type="button" value="ウィンドウを閉じる" onClick="CloseWin()"> </FORM> </BODY> </HTML> テストしたら、「ウィンドウを閉じる」ボタンは機能したのですが、このhtmlファイルをフレームの一つのして読み込むと機能しません。 なぜなんでしょうか? どのようにすれば、機能するようになるのでしょうか? 大変初歩的な質問ですが、周りにだれも教えてくれるものがいませんので困っております。 よろしくお願いします。

  • openerの関係が崩れてしまった場合の関数呼び出し

    javascript の関数の呼び出し方法について質問です。 A.htmlからwindow.open で開かれたB.htmlがあります。 A.htmlにある test() という関数を呼び出したいい場合、 window.opener.document.test(); となると思いますが、 B.htmlを開いている状態で、A.html上に違うページを開いたとき、 openerの関係が崩れてしまうためか、B.htmlの window.opener.document.test();  の部分で「書き込み出来ません」というスクリプトエラーが発生してしまいます。 opener を使用しないで関数を呼び出すことはできるでしょうか?