- ベストアンサー
直リンクされた場合のフレームセットのリンクを変更したい
- 直リンクされるとレイアウトが崩れるフレームセットのリンクを変更する方法について教えてください。
- 現在は<body onLoad="if (top == self) { location.replace('index.html') };">というタグでフレームセットのページにリロードしていますが、直リンクされた場合に別のページに飛ばす方法を知りたいです。
- JavaScriptやCGIを使用して直リンクされた場合に指定したページに飛ばす方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
この問題を上手に解決してるな~と思ったのが、参照URLの「こよみのページ」です。 外部JavaScript"sv_env.js"とcgi"directjp.cgi"を組み合わせて解決しているようです。 どちらもフリーソフトとして公開されているわけではないのでここにソースを転載するわけにはいきませんが、view-sourceでソースを表示して仕組みを調べてみてください。(cgiのソースは見られませんが)
- 参考URL:
- http://koyomi.vis.ne.jp/
その他の回答 (2)
- s_doc
- ベストアンサー率24% (93/377)
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を上手く処理してください。
カテゴリが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を無効にされていたら元も子も無いのですけどね…
お礼
早速のお返事ありがとうございます。 抜粋されたスクリプトは、たぶん私が今使っている JavaScriptと同じで、トップページへジャンプはしても、そのフレーム内までは対応してない物のようです。 わざわざ調べていただきありがとうございました。 もう少し調べてみます。
お礼
ご解答ありがとうござ合います。 まさに!このHPの仕組みを作りたかったんです。 「sv_env.js」を見る限りでは、CGIにリンクするためのJavaScriptのようですね。 「directjp.cgi」が肝心な所のようですが見れないのが残念ですね。 多分、index.htmlを表示させた後、リンク元アドレスを取得してフレームセットを書き直すCGIなのだと思います。 とりあえず、CGIのカテゴリでも聞いてみます。 本当にどうもありがとうございました。