• ベストアンサー

親ウィンドウ(scriptで言うopener)を指定するtarget属性

親ウィンドウ(scriptで言うopener)を指定するtarget属性 (サブフレームではなく)サブウィンドウから親ウィンドウを指定するためのtarget属性は、どう記述すれば良いか悩んでおります…。 たとえば具体的には… サブウィンドウを以下のアンカータグを使って開きます。 ■親ウィンドウ内 <a href="sub_page.html" target="winSub" onclick="window.open('sub_page.html','winSub');return false;"> 開かれたサブウィンドウから親ウィンドウをナビゲートする、アンカータグを表示したいのですが、 ■サブウィンドウ内 <a href="page2.html" target="★" onclick="opener.location.href='page2.htm';return false;"> 上記の★の部分には何を指定すれば良いのか解りません。 ※なお、ご覧のとおりscriptオフ環境に対する記述部分が問題になっており、scriptオンでは期待通りの動作をします。 サブウィンドウはサブフレームと同等に扱われると考え、「_parent」や「_top」を指定しても、単に自ウィンドウがページジャンプしただけでした(とりあえずIEのみでテスト)。 どなたか、target属性の指定方法、あるいは、そもそもtarget指定で開いたサブウィンドウには親子関係がない、などの情報など、何かありましたら、ご教授のほどお願いいたします。

  • HTML
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • THX1138
  • ベストアンサー率51% (108/208)
回答No.1

target 属性はあくまでも「フレーム」を扱うものです。frameset 要素と、frame 要素を用いた親子関係は扱えますが、ウィンドウを越えた関係については少なくとも W3C の勧告にはどのようにすべきかは書かれていません。 知らないフレーム名が指定されていた場合はウィンドウが開きますが、これは指定されたフレームがないので「しかたなく」新しいウィンドウを開く、という消極的な解釈をしているわけです。

参考URL:
http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/frames.html#h-16.3.2
taseki
質問者

お礼

ご回答ありがとうございます。 なるほど、ようするに親子関係のあるウィンドウを制御するにはscriptしかなく、target属性で新しい名前が指定されたら、それはサブウィンドウではなく別の新しいウィンドウとして扱われる、というようなことですね。 大変ためになりました。 質問文のようなことを実現させる別の方法など、どなたかご存知ではないでしょうか。おそらく難しそうですが…、とりあえずもう少し待ってみます、よろしくお願いいたします。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

scriptを使わないで、openerウィンドウを制御することはできないと思います。

taseki
質問者

お礼

ご回答ありがとうございます。 いろいろ代替案を試行錯誤しておりまして、とりあえず、scriptを使わずにopenerウィンドウを指定するには、そのウィンドウに名前が付いていれば良いのですから、その方向で何とかならないか、と考えております。 で、今のところ、縦横100%の見えない名前つきフレームを使って、そこから開いたサブウィンドウからtargetに名前を指定することで、とりあえずは当初の希望どおりの動作を実現できました。 しかしできればもっとスマートな方法をご存知でしたら、ぜひともご教授いただけたらと、お願いいたします。 この方向では、なんとか自ウィンドウに名前をつける方法(scriptでwindow.name="xxx"のような)があれば早いんですが、聞いたこともないですよね…。 ただこれも、もちろんあまり良い方法とは思えず、まぁそもそもこういう形自体が問題なのも解っていますが、要件に対応するため善処しているところでして…。

関連するQ&A

  • 子ウィンドウでウィンドウサイズ固定にしてtarget=

    HPを作っていて親ウィンドウに↓のように <script language="JavaScript"> <!-- function winopen(url){ win=window.open(url,"host","scrollbars=1,width=780,height=480"); } //--> </script> ~略~ <a href="dougu/keito.html" target="_blank" onClick="Javascript:winopen('dougu/keito.html');return false;"><img src="img/item-keito10.gif" width="50" height="38" border="0"> ウィンドウサイズを固定してtarget="_blank"で開いてさらにその子ウィンドウでも同じようにリンクを張って <script language="JavaScript"> <!-- function winopen(url){ win=window.open(url,"host","scrollbars=1,width=780,height=480"); } //--> </script> ~略~ <a href="../wash.html" target="_blank" class="style1" onClick="Javascript:winopen('../wash.html');return false;">こちら</a> とtarget="_blank"でウィンドウサイズを固定しして開きたいのですが同じウィンドウで開いてしまいます。 説明の仕方が分かりづらくてすみません。分からないようでしたら補足いたします。

  • サブウィンドウから親ウィンドウをリロード

    サブウィンドウから親ウィンドウをリロードするときに、 window.opener.location.href = "A.html"; のような使い方をしていますが、親ウインドウのアドレスを指定せずに行う方法がありましたら教えていただけないでしょうか。

  • サブウィンドウから、親ページのリンクを操作し、自身は閉じるやり方

    すいません。javascriptに詳しい方、教えて下さい。 今、親ページからポップアップで、サブウインドウを開いています。 やりたいことは、サブウィンドウにあるcloseボタンを押したら、 親ウィンドウを指定のページに移動して表示させ、サブウィンドウ自身は閉じる動作がしたいです。 調べてみたら、opener.location.hrefというのを使えばできるみたいなのですが、こういう記述で大丈夫なのでしょうか? プレビューしてみたら、一応動いてくれているみたいですが、文法的にはどうなのでしょうか? 教えていただければ、ありがたいです。 以下にソースを記述します。 <a href="index.htm#F" onClick="opener.location.href='index.htm#F; return false;" javascript:window.close();">

  • サブウィンドウを閉じたときに親ウィンドウのリンク先

    サブウィンドウを閉じたときに親ウィンドウのリンク先 サブウィンドウを閉じたときに親ウィンドウを別URLに 飛ばすにはどうしたらよいですか? ちなみにサブウィンドウはボタンを押したらウィンドウが 閉じるという動きです。 下記のタグで実行できるのですが、 macのIE5.0で動きません。 IE5.0で動くようにしたいのですが・・・・ 下記がタグになります。 ご教授お願いします。 ======サブウインドウタグ======= <script type="text/JavaScript"> function jump_and_close() {  opener.location.href = "別URL";  window.close(); } </script> ======親ウィンドウへのリンク======= <input type="button" value="ボタン" onClick="jump_and_close()">

  • 子ウインドウ内のswfから親ウインドウへリンク

    親ウインドウからwindow.openを使って子ウインドウを開いています。 子ウインドウ内にはボタンを含むswfがあり、 そのボタンをクリックすると親ウインドウ内にA.htmlを表示させたいと考えているのですが、 色々調べてみてもその方法を見つけることが出来ません・・。 swfからではなく普通のテキストや画像からなら <a href="" onclick="opener.location.href='A.html';return false">○○○</a> で可能なことは分かるのですが、getURLに上記を入れてもダメでした。 可能な方法はありませんでしょうか? よろしくお願いします。 (Flash8を使用しています)

    • ベストアンサー
    • Flash
  • target=_blankを使わない新規ウィンドウ

    target=_blankを使わない新規ウィンドウオープンについての質問です。 <a href="http://www.example.com" onclick="window.open(pageTracker._getLinkerUrl(this.href),'_blank'); return false;"> 上記を記述しているのですが、ある日から突然新規ウインドウを開かずリンクサイトが表示されてしまいます。 「pageTracker」が機能したまま別ウインドウでリンクサイトが開く方法を知りたいです。 よろしくお願いいたします。

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

    以前、ここで質問をしたものです。 まだ、解決していません。 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>

  • java scriptで新しいウィンドゥを開く

    クリックすると、アドレスバー等がない新しいウィンドゥで開く…という風にしたいのですが、うまく行きません。 以下のようにやってみたのですが、何処が間違っているのでしょうか? <script language="JavaScript"> <!-- function winopen(url){ win=window.open(url,"host","scrollbars=1,width=717,height=700"); } //--> </script><FONT size="+1"><B><A href="ブログのアドレス" target="_blank" onclick="Javascript:winopen('ブログのアドレス');return false;">ここをクリック</A></B></FONT>

    • ベストアンサー
    • HTML
  • onclickでtarget指定

    <SCRIPT language="JavaScript"> function _HpbJumpURL(url) { if (url != '') { window.location = url; } } </SCRIPT> で、IFRAME内のソースに onclick="_HpbJumpURL('index.html');" とした時、クリックするとIFRAME内にindex.htmlが表示されてしまうのですが、 これを親ウィンドウにindex.htmlを表示させたい場合は、どうすればいいのでしょうか? どこにtarget指定を入れればいいのかがわかりません。 宜しくお願いいたします。

  • サブウィンドウがリロードされたとき、手前に表示したい

    <a href= "a1.htm"onClick="window.open 'a1.htm','new','width=600,height=500,scrollbars=1,resizable=1'); return false;"> でサブウィンドウを開いています。 開いた状態で、また親ウィンドウから、別の(a2.htm)ファイルを開きます。同じサブウィンドウで表示されるのですが、親ウィンドウが手前でサブウィンドウが変わったのがわかりません。 サブウィンドウのファイルが変わったときに、 親ウィンドウの手前に表示させることは可能でしょうか?

専門家に質問してみよう