• ベストアンサー

CGIでのtarget指定について

CGI初心者です。 下記図のようなイメージでhtmとcgiを組み合わせて表示させたいと考えています。 index.htm | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|←bunner.htm |  ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | | ___|_____________|  ↑ menu.cgi       ↑mein.htm index.htmにFRAMEタグを使用して表示させています。 menu.cgiに固定リンクを表示し、リンクをクリックした時にtarget指定でmein.htmに表示させたいです。 IE6では上手くいったのですが、IE7以降で試した場合、新規ウインドウでリンクが開かれてしまいます。(target=_blankと同じ動きです) ちなみにFireFoxでは新規タブに表示されます。 html形式の時点では問題なくできるようなので、恐らくcgiが絡んでいるのが原因だと考えています。 そもそもこのような作り方が問題なのでしょうか? menu.cgiに当たる部分は、固定リンクの他にテキストファイルを読み出して表示させるような可変リンクを表示したい部分もあるのですが、回避方法が見付からなく困っています。 どうか、お力添え宜しくお願いします。

  • CGI
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

 CGIだから云々には関係ありません。ブラウザはそれがCGIから出力されたものか否かは知る由もないのですから・・  firefoxをお使いなら、menue.cgiが表示されている部分で、コンテキストメニューから「このフレーム」→「ソース表示」でリンクがちゃんとtarget="main"とかになっているか確認してみてください。  ただ、フレームは過去の技術で今はほとんど使われない(将来的には廃止)ので、CSS等で作成されたほうがよいでしょう。

chokotip
質問者

お礼

アドバイスありがとうございます。 そうなんですね・・・勉強不足でした。 もう一度確認してみます。 フレームについても知識がありませんでした。 CSSの勉強も不十分なので、もう一度勉強しなおそうと思います。 ありがとうございました。

その他の回答 (2)

回答No.3

貴方が示したHTMLでFirefox2とIE8で試してみましたが、 なんら支障ありませんでしたよ。 それと、 「../../../top.htm」はアドレスをカットしているのですか? サーバパスでリンクを張るのが正しいと自分は思います(../top.htm)。

chokotip
質問者

お礼

ご検証ありがとうございます。 知人に聞いて分かったのですが、こちらの環境が悪いみたいです。 実はmenu.cgiは違うドメインへのファイルパスになるので、セキュリティ面でIE7以降やFireFoxではデフォルトの設定で、異なるドメイン間のサブフレーム移動が無効になっているのが原因のようでした。 そもそもこちらの認識が薄かったです。 お騒がせしました。 併せてありがとうございました。

回答No.2

質問内容があまり理解できないので詳しく書けませんが、 targetをジャンプさせたいフレーム名にしてみてください。 <frameset cols="180,*" border="0" frameborder="0" framespancing="0"> <frame src="menu.cgi" name="menu" scrolling="auto"> <frame src="main.html" name="main" scrolling="auto"> </frameset> print "<a href=\"test.html\" target=\"main\">テストページへ</a>\n";

chokotip
質問者

補足

アドバイスありがとうございます。 何が原因なのか私も良く解っていないのですが、 具体的に言うと index.htmで <FRAMESET rows="13%,*" frameborder="NO" border="1" >   <FRAME src="bunner.htm" name="header" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"> <FRAMESET cols="16%, *" frameborder="NO" border="1">   <FRAME src="menu.cgi" name="menu" marginwidth="0" marginheight="0" frameborder="0" scrolling="no">   <FRAME src="top.htm" name="main" marginwidth="0" marginheight="0" frameborder="0"> というように組み込んでいます。これでイメージどおりのフレーム構成ができます。 menu.cgiでは print << "END";  ・  ・  ・ <td align="center">   <a href="../../../top.htm" target="main">     <IMG src="../../../img/top_btn.gif" width="120" alt="トップへ" border="0">   </a> </td>  ・  ・  ・ END と組み込み、target="main"に当たるフレームが切り替わると思っています。 困っているのは IE6では理想の動作を行いますが、IE7以降のバージョンやFireFoxになると動作に変化があり、フレーム内ではなく新規でウインドウやタブが立ち上ってしまう事です。 ブラウザの仕様の影響なのでしょうか? ちなみにmenu.cgiがmenu.htmの場合だと、IEのバージョンに関係なくフレーム内で切り替わります。 アドバイス内容も試みて見ます。

関連するQ&A

  • Flash設置とターゲット指定について

    Flashメニューを使ってHPを作っています。txtファイルにターゲットを指定する項目があるのですが、フレームで上下2分割にしたindexページのbottomに表示させるにはどうしたらよいのでしょうか?メニューボタンは複数あり、&target1=_blank& &target=_blank& というように並んでいます。_blankの部分を_bottomに変更するだけではダメなのでしょうか?何度やっても別ウィンドウで表示されてしまいます。初歩的な質問だとは思いますがどなたかよろしくお願い致します。

  • ターゲット指定とは何ですか。

    ターゲット指定とは何ですか。 以下のようなFlashメニューがあるとします。 &sub2=薬の選び方と使用& &url2=http://my-natural-life.com/engei_life/kusuri.html& &target2=_blank& sub2のターゲット指定 この時の_blank&とは何ですか。 上記のURLを指すものでしょうか。URLなら<a href="●●">リンク先名</a>とすべきでしょうか。 それともまったく違ったものを記入するべきでしょうか。 また、&URLの最後の「&」はつけなければならないでしょうか。 よかったら、例を示して教えてください。

  • ターゲットのフレーム作り

    frame.htmでフレーム左側のメニューを作り、 a.htm b.htmなどを右側に表示させるHPを作りたい のですがうまく出来ません。 今は、左側のリンクの部分をクリックすると新しい ウィンドウが出てくるようになっています。 フレームをのせる大元のファイルはindex.htmにして ますが、これは <frameset cols=20%,80%> <frame src="frame.htm"> <frame src="a.htm"> </frameset> にしてますが、多分ここは問題ないと思うのですが。 問題あるのではないかと思うのは、 frame.htmの部分ではないかと思うのですが、 これのリンク部分の内容は、 <a href="b.htm" target="frame2"> aファイルだよん </a> という形になっています。本に書いてある通り やっているのですが、どうして新しいウィンドウが 出てくるのでしょう? 誰か教えてください。お願いします。

    • ベストアンサー
    • HTML
  • リンクのターゲット指定について教えてください

    リンクのターゲット指定について教えてください。 index.htmlから別ウィンドウで開いた000.htmlがあるとします。 000.htmlからリンクでindex.htmlのページにリンクを貼りたい(リンク先を表示させいたい)場合はターゲットをどのように指定すればいいのでしょうか? ちなみに、index.htmlはフレームにはなっていません。 よろしくお願いします。

  • CGI用直リンク防止プログラムについて(トップがフレームでCGI表示の場合)

    質問させて頂きます。 二分割のフレーム構成でのサイトですが、左にメニュー、そして右にCGIを表示させています。(index.htmはフレームなしの一枚ペラで、そこをクリックするとコンテンツのフレームページ、cont.htmにいくようになっています) CGIには直リンクを防止する為、KEEPOUT(http://cgiroom.nu/list/level_up/keepout/readme.htm)という直リンク防止CGIを仕込んであるのですが、フレーム構成でいきなりCGIを表示させている為か、index.htmからcont.htmという正規ルートを辿っても、直リンクだと判断されてindex.htmに戻されてしまうのです。 それでフレームという概念をぼかす為にCGIの前にrefresh.htmを設けて、カウント0で瞬時にCGIに行くようにしたところ、ある程度のバージョンのIEなら弾かれなくなりましたが、IE5.1以下はやはりindexに戻ってしまいます。現在は6か7が主流なので別にいいかとも思ったのですが、クラシックMacのユーザーは5.1を使っている方がまだ割といらっしゃると聞いたので、どうにか5.1でも弾かれないようにしたいのです。 どなたかお知恵を貸して頂けないでしょうか。宜しくお願い致します。(ちなみにネスケでは全部弾かれますが、諦めています)

    • 締切済み
    • CGI
  • HTML targetについて

    イントラネット上で社内ポータルサイトを作っています。 ところで、新しいウィンドウを開いて表示するときにtarget_blankって書きますが、あるマシンではこのタグをつけたリンク先にジャンプしないのです。 targetを指定しないリンクにはちゃんとジャンプします。 環境は、WIN95、IE4.0です。 IE側に設定があるのでしょうか? よろしくお願いします。

  • target=

    フレームを多用しているHPの中で、target="_top"を使ってリンク先に飛ばそうとしているのですが、うまくいかずに困っています。 IE7でなら問題なく、フレームを全てキャンセルした上で新しいページを表示します。 しかしながら、IE6ではリンクをクリックしても全く反応がありません。 因みに、targetとして_self、_blankを指定した場合は正常に動くのですが、_parentでは反応がないことも確認しています。 気になるのが、IE7を入れていたのを、業務の都合でIE6に落とした環境である点です。 はじめからIE6しか入れていないPCがあれば、問題の切り分けがしやすいのですが、それもままならない状況です。 解決策もそうなのですが、同様の経験がある方のお話を賜れれば幸いです。 何卒宜しくお願いいたします。

  • TARGET の指定について

    HPを作りました。フレームも分割しました。で、いざあげようとチェックしてみた ところ、フレームのメニューをクリックすると新たなウィンドゥが出たり、フレー ムがあったところに次ページが表示されてしまったりします。 ホームページマネージャーというフリーソフトを使っているのですが、そこにある target(_blank _top _parents _self)では上手くいきません。 どうしたら上手くいくのでしょうか?

    • ベストアンサー
    • HTML
  • <FORM TARGET="">で開く窓の大きさ指定

    Javascriptかもしれませんが、perl内で使いたいので一応ここで‥‥ A.cgiからフォームに入力後送信、B.cgiに飛びます。 その時、B.cgiを新しく開いたウィンドウに表示したいので下記のようにしてます。 A.cgi側フォーム <FORM METHOD="post" ACTION="B.cgi" TARGET="_blank"></FORM> この_blankで新しい窓は開きますが、この開いた窓の大きさを指定するにはどうしたらいいんでしょうか? Javascriptはあまり良くわかりませんが、window.open()くらいなら使った事あります。これだと大きさも指定できますが、パラメーター(?)を渡しつつ、開いた窓の大きさも指定したいのです。 渡したいパラメーターは1種類(しかも変数で代入できる)なので、フォームじゃなくても <A HREF="B.cgi=?$i"></A>って格好でもいいです。($iの値は固定されていない) 何か私でもできる簡単な方法はありますか?

    • ベストアンサー
    • Perl
  • IE7でのターゲット指定について

    こんにちわ。 何度も質問させていただき申し訳ありません。 どうしても分からない事が一つあって質問させていただいてる次第です。 topというHTMLの中にインラインフレームを入れて、その中にtop2というページを表示させています。 そのtop2の中にはいくつかの画像リンクを貼っています。 その画像リンクをクリックするとtopのページいっぱいにリンク先のページが表示されるようにしたいのです。 IE6だとターゲット指定が_parentで問題なく作動するのですが。 IE7に変えると何故かブランクになってしまい新規で窓を開いてしまいます。 IE7で_parentは使えないと言う事なのでしょうか? それとも何か他に正しいターゲット指定があるのでしょうか? 乱文で分かりづらいと思いますが、どうか知恵をお貸しください。

    • ベストアンサー
    • HTML

専門家に質問してみよう