• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:直リンクされた場合のフレームセットのリンクを変更したい)

直リンクされた場合のフレームセットのリンクを変更したい

このQ&Aのポイント
  • 直リンクされるとレイアウトが崩れるフレームセットのリンクを変更する方法について教えてください。
  • 現在は<body onLoad="if (top == self) { location.replace('index.html') };">というタグでフレームセットのページにリロードしていますが、直リンクされた場合に別のページに飛ばす方法を知りたいです。
  • JavaScriptやCGIを使用して直リンクされた場合に指定したページに飛ばす方法を教えてください。

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

  • ベストアンサー
  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.2

この問題を上手に解決してるな~と思ったのが、参照URLの「こよみのページ」です。 外部JavaScript"sv_env.js"とcgi"directjp.cgi"を組み合わせて解決しているようです。 どちらもフリーソフトとして公開されているわけではないのでここにソースを転載するわけにはいきませんが、view-sourceでソースを表示して仕組みを調べてみてください。(cgiのソースは見られませんが)

参考URL:
http://koyomi.vis.ne.jp/
momonojoh
質問者

お礼

ご解答ありがとうござ合います。 まさに!このHPの仕組みを作りたかったんです。 「sv_env.js」を見る限りでは、CGIにリンクするためのJavaScriptのようですね。 「directjp.cgi」が肝心な所のようですが見れないのが残念ですね。 多分、index.htmlを表示させた後、リンク元アドレスを取得してフレームセットを書き直すCGIなのだと思います。 とりあえず、CGIのカテゴリでも聞いてみます。 本当にどうもありがとうございました。

その他の回答 (2)

  • s_doc
  • ベストアンサー率24% (93/377)
回答No.3

JavaScriptだけの解法です。 ---- C.html ---- if(top == self) {location.href = "/index.html?" + location.href} ---- index.html ---- (top) window.frames[1].location.href = location.href.substring(1); こんなのいかが? 厳密にはトップから正しく入ってこられたときループしないように、 index.htmlを上手く処理してください。

noname#6248
noname#6248
回答No.1

カテゴリがJavaScriptなので… ●イヌでもわかる… http://www.red.oit-net.jp/tatsuya/java/referrer.htm このページより抜粋します。 <script language="JavaScript"><!-- myHome="http://www.provider.jp/yourHP/index.html"; if (document.referrer != myHome){ // リンク元がトップページじゃない location.href = myHome; // トップページへジャンプ } // --></script> 注意として、『リファラ実験』のページも併せて書いておきます。 http://www.teria.com/~koseki/memo/referrer/ 誤作動要因等の対応のために… まぁ、JavaScriptを無効にされていたら元も子も無いのですけどね…

momonojoh
質問者

お礼

早速のお返事ありがとうございます。 抜粋されたスクリプトは、たぶん私が今使っている JavaScriptと同じで、トップページへジャンプはしても、そのフレーム内までは対応してない物のようです。 わざわざ調べていただきありがとうございました。 もう少し調べてみます。

関連するQ&A