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

フレームセットのリンクを変更するCGI

このQ&Aのポイント
  • フレームセットを利用していると直リンクされると、レイアウトが崩れて嫌なのでJavaScriptでリダイレクトする方法を考える。
  • 直リンクされた場合に強制的にindex.htmlに飛び、さらにフレームセットのページをA.htmlとC.htmlに変更する方法を知りたい。
  • JavaScriptとCGIを組み合わせて、直リンクされたページのアドレスを取得してフレームセットを書き直すCGIについて教えてほしい。

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

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

q=745359で参考にしたサイト上のfoo.htmを直接開いたときの流れと、cgiの役割を見てみましょう。 (1)http://koyomi.vis.ne.jp/foo.htmを直接開く。 ↓ (2)sv_env.js CallMainIndex() topウィンドウの関数Y2K(std.jsで定義)が存在するかどうかで、topの有無を判定。 topが存在しなければdirectjp.cgiをコール。 ↓ (3)directjp.cgi?http://koyomi.vis.ne.jp/foo.htm ------------------------ <HTML> ~ <FRAMESET ~> <FRAME ~ SRC=(メニューフレーム)> <FRAME ~ SRC="jmpwait.htm?http://koyomi.vis.ne.jp/foo.htm"> (←動的に出力するのはここだけ?) ~ <FRAMESET> <HTML> ----------------------------- 上記のようなHTML文書(簡略化してあります)を出力する。 ⇒左フレームにメニューが、右フレームにjmpwait.htmが表示される。 ↓ (4)jmpwait.htm?http://koyomi.vis.ne.jp/foo.htm SetTimeoutで設定秒後に目的のページにジャンプ。 ↓ (5)右フレームにfoo.htmが表示される。 ↓ 目的達成! ざっとこんな感じですかね。 ということで、エラー処理等を考えなければdirectjp.cgiは右フレームのSRC属性だけを動的に出力するヒアドキュメントを用意すれば済んじゃうような気がします(未確認)が。。。実際はそんな単純な話しではないのかも知れません。。。 残りのJavaScriptの部分は、コード丸写しでは著作権的にも道義的にもまずいでしょうが、考え方をイタダイチャウ分にはアリでしょうね。つまり異なるコードで同じ手法を再現してしまえば著作権上問題がないはずです。(事実マイクロソフトはそう主張しています。道義的に許されるかどうかは分かりません) まあ技術を「盗む」というと言葉が悪いですけど、勉強ってこうやってするもんですよね。 あ、サイト管理者さんにコード(とCGI)の再利用許可をお願いするのも一つの手です。(^^;

すると、全ての回答が全文表示されます。

関連するQ&A