• ベストアンサー

フレーム内のページを表示した時、自動的にフレーム表示にする方法

フレームの元となるページ「A」、 そのフレーム内に表示するページ「B(メニュー)」、「C(コンテンツ)」があったとします。 例えばGoogleからの検索で「C」に訪問があった場合などに、ページ「A」に自動的に転送したいです。 「C」だけだと、「B」に表示してあるメニューが見れない為です。 もし上記のような「転送」など、または他の解決方法がありましたら、教えていただきたいです。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.4

「転送」の定義が良く分からないのですが、 単純に子フレームへのアクセスを親フレームに飛ばしたいのなら <script type="text/javascript"> <!-- if(top.location.href==self.location.href){top.location.href="A.html(親フレームURL)"} //--> </script> を子フレームの<head>内に追加すればいいと思いますよ。 的外れでしたらご容赦ください。

bombrea
質問者

お礼

回答ありがとうございます。 まさに自分のやりたい事がこのコードで叶いました!本当に有り難うございます。 この種類の転送とは違いますが、よくホームページ移転の時に使われるmetaタグ内に仕込まれる転送のコードがありますが、あのように転送までの時間の指定を、教えていただいたコードでも同様に指定する事は可能でしょうか?出来れば0秒に指定したいです。

その他の回答 (3)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

#1です。 「<noframes></noframes>内に」って部分はボケてて余計な事書きました、全く今回の件には関係ありませんでした。すみません。

noname#100277
noname#100277
回答No.2

CGIが使える環境に在るなら、検索サイトからのリファラを取得させて、ソレを元にindex.htmlにリダイレクトさせる方法も在るでしょう。 又はCGIや.htaccess(コレは可能かは不明)で、フレームに表示させるページ自体をindex.htmlからのみに制限させるとか・・・ コレは上記の反対の手法でindex.htmlからのリファラのみを取得させて表示する方法です。

bombrea
質問者

お礼

回答ありがとうございます。 CGIですか・・自分にはちょっと敷居が高いですが、リファラを元にリダイレクトさせるなら確実にできそうですね。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

思いつくのは、 フレーム内の全てのページで<noframes></noframes>内にAへのリンクを書いておく、 フレーム内の全てのページにJavascriptを仕込んでおいて単独で表示されていたらフレーム構造を復元する、 フレーム内の全てのページ全てをphpなどに置き換えて状況によって表示内容を変える、 とかかな。 とってもナイスで簡単な方法ってのはなかったと思う。 フレームは便利な点もあるけど欠点もある。最近は採用されない事が多いですね。

bombrea
質問者

お礼

回答ありがとうございます。 <noframes></noframes>というのは「フレームに対応していないブラウザ」にのみ表示されるのものではないのでしょうか? 今実際にやってみました。 <noframes></noframes>を設置して、フレーム内のページを単独で表示させてみたところ、<noframes></noframes>は適用されず、普通にページが単独で表示されてしまいました。

関連するQ&A