• 締切済み

サブウィンドウへのリンク

いつもお世話になっています。 サブウィンドウへのリンクについて御質問です。 メインのページから、サブウィンドウへの直接のリンクは可能ですか? 例えばAのページからBのページ内に埋め込んであるサブウィンドウを呼び出す、というようなことです。 またサブウィンドウからサブウィンドウへリンクを貼ることは可能ですか?Aのページにあるサブゥインドウから、Bのページにあるサブウィンドウを呼び出したりしたいのです。 そもそもサブリンドウへリンクを貼ることが出来るのかどうかも良く分からない素人なので、分かりやすい御回答をよろしくお願いします。

みんなの回答

  • taseki
  • ベストアンサー率66% (155/233)
回答No.3

では、おそらく具体例を見たほうが解ると思いますので、 ------------------------- <html> <head> <script language="javascript"> var param = location.search; if (param) { alert("パラメーター : " + param); } </script> </head> <body> <a href="test.html?item1">LINK 1</a><br> <a href="test.html?item2">LINK 2</a><br> <a href="test.html?item3">LINK 3</a><br> </body> </html> ------------------------- これを「test.html」という名前のHTMLファイルに保存してください。 開くと、リンクが3つあり、それぞれクリックしてみてください。 <a href="… には、BページのURIの末尾に「?param」というようにクエスチョンマークに続けてパラメーターを付加します。 で、呼ばれるBページのほうでは、そのパラメーター部分(付加した部分)を判別しますが、上記のように location.search と書けば「?param」の部分が読み出せるわけです。 あとは、そのパラメーターに応じて、開くサブウィンドウを振り分ければいいと思います。 たとえば if (param == "item1") { subWin("file1.html"); } else if (param == "item2") { subWin("file2.html"); } else if (param == "item3") { subWin("file3.html"); } のように、Aページ(あるいは、どこでも良い)にてクリックしたリンクのhrefが ●「…?item1」 だったら 「subWin("file1.html")」を実行(file1.html をサブウィンドウで開く) ●「…?item2」 だったら 「subWin("file2.html")」を実行(file2.html をサブウィンドウで開く) ●「…?item3」 だったら 「subWin("file3.html")」を実行(file3.html をサブウィンドウで開く) という感じです。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.2

それは target の指定では実現不可能だと思います(ちなみに「targetタグ」ではなく「target属性」ですね。)。 なぜなら、最終的な「詳細画面」はBページのスクリプトsubWinによって開かれるわけで、まだBページを開いていない=Aページを開いている状態では、目的の画面=ターゲットは、まだ存在していないからです。 Aページ内のリンクをクリックすると、 【1】Bページが開かれ、 【2】さらに「詳細画面」(サブウィンドウ)も開かれる というのを実現させたい、ということですよね? ここまで私の解釈あってますでしょうか? で、以下の方法で実現可能です。 まずBページに、以下のような仕掛けを埋め込んでおきます。 【自分(Bページ)が開かれたとき、URLパラメーターをチェックし、必要に応じてsubWinを呼び出す】 つまり言い換えれば「テーブル内の画像をクリックする」を自動的に行う仕掛けです。 あとは、AページからでもAページのサブフレームからでも、単に、Bページへのリンクにパラメーターを追加するだけです。 パラメーターはQUERY_STRINGS、つまりURLの最後に?~として付加し、上記仕掛けからは location.search で読み出します。

miwasukari
質問者

お礼

早々の御回答有り難うございます。 >Aページ内のリンクをクリックすると、 【1】Bページが開かれ、 【2】さらに「詳細画面」(サブウィンドウ)も開かれるというのを実現させたい、ということですよね? はい、全くその通りです。 簡潔にまとめてくださってありがとうございます。またとても分かりやすいご説明で、ちょっと仕組みが理解できました。 しかし、そうですか…何だかちょっと難しそうな作業なのですね。 >パラメーターはQUERY_STRINGS、つまりURLの最後に?~として付加し、上記仕掛けからは location.search で読み出します。 この文章が、私にとっては初めてのコトバばかりでしたので、ちょっと勉強してから出直した方が良さそうです。このタグの書き方を分かりやすく書いてあるようなサイトやオススメの本、などございましたら、御教示下さい。度々申し訳ございません。お願い致します。

  • 2NN
  • ベストアンサー率40% (143/353)
回答No.1

サブウィンドウ?Javascriptですか? 単純にフレーム内のページをリンクで呼び出すってことでしょうか? target属性を使えばできます? <a href="(リンク先URL)" target="(サブウインドウのフレーム名)"> 全くずれた回答だったらごめんなさい。

miwasukari
質問者

お礼

ごめんなさい、さらに補足です。Aページの中に入ってるのはインラインフレーム、Bページは、テーブルで区切った中に画像を入れて、その画像を<a href="javascript:subWin('ファイル名')">で呼び出しています。Aのインラインフレームから、Bの画像内のファイルをサブウィンドウで開きたいのです。

miwasukari
質問者

補足

早々の御回答、有り難うございます。そうです、Javascriptで呼び出しているんですが…。 ちょっと長くなりますが説明させて頂きます。 ネットショップをやっています。難しい言葉が分からないので、稚拙な表現になってしまいますが、お許し下さい。 サイトの構造は… Aのページの中にフレームが入っていて、そこに更新した情報を入れています。 Bのページに、いくつかフレームがあって、画像をクリックするとサブウィンドウが開き、詳細が見られるようになっています。 AのフレームからBのページに飛ぶには<a href="(BのURL)" target="_top">で、全画面表示でBのページに飛ぶことが出来ますよね。現に、そういう使い方を現在しています。 お伺いしたいのは、Aのフレームの中に記述した更新情報をクリックすると、Bのページに埋め込まれたフレーム?(htmlファイル)をサブウィンドウで開けるようにしたいのです。 こんな説明で御理解頂けますでしょうか…?言葉が足りなくて申し訳ありません。targetタグで何とかなれば、と思うのですが、上記の御回答だと、Bページに飛ぶことしか出来ませんでした。Aのフレーム内から飛ばそうとしているからでしょうか?サブウィンドウのフレーム名の入れ方が悪いのでしょうか? こんな説明で御理解頂けましたら、御回答頂きたく存じます。