- 締切済み
HP:フレームセットページへのリンク方法を教えて!
リンク先として表示する他の方が管理するHPがフレームセットで出来ています。 例えば当方のHPをA.html として、その中から、 相手先のB.html のフレームセットを保ったまま、 [B.htmlはC.htmlのメニューページとD.html~F.htmlの記事で出来ている] D.htmlやE.html F.htmlへリンクするような記述ができないかと 調べています。 過去ログ等を検索し、q135419や8280650等を参考に考えてはいるのですが、 相手先のHPを変えられない、ということで悩んでいます。 Javascript等を用いても良いのですが、当方の知識はあまりありません。 相手のHPにはリンクの許可は得ていますし、 不可能であればC.html等への直リンクでも許される状態ではありますが、 なんとかしたいと考えています。 良い案がありましたらご教授願えませんでしょうか。 宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
フレームの問題点は ⇒フレームなしPからフレームありP内へのアンカーへ - JavaScript - 教えて!goo( http://okwave.jp/qa/q8280650.html ) でも説明しました。最大の難点がこの問題なのです。 →フレーム HTML 問題( https://www.google.co.jp/search?q=%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%20HTML%20%E5%95%8F%E9%A1%8C&hl=ja ) そこでも示しましたように、新たにあなたがフレームセットのページを作成してそれをリンク先にするのが一番簡単です。 >相手先のB.html のフレームセットを保ったまま、[B.htmlはC.htmlのメニューページとD.html~F.htmlの記事で出来ている] のですから、B.htmlのソースをそのまま、あなたのサイトにコピーして、frame内容へのパスを絶対配置に書き直せばよい。 [例] hoge.com/abc/B.html がオリジナル framesetの内容 <frameset rows="200,*"> <frame src="C.html"> <frame src="D.html"> </frameset> あなたのサイトに作成するframeset link.html <frameset rows="200,*"> <frame src="http://hoge.com/abc/C.html"> <frame src="http://hoge.com/abc/D.html"> </frameset> <frameset rows="200,*"> <frame src="http://hoge.com/abc/C.html"> <frame src="http://hoge.com/abc/D.html#anchorB"> </frameset> のように個別にページ内アンカーを指定することも可能です。 ★先方に、相手先コンテンツをフレームで表示する許可を取ること。 外見上はあなたのサイトにあるように見える。 >不可能であればC.html等への直リンクでも許される状態ではありますが、 ★出来れば、そうして個々のページにリンクするようにするのが良いです。
- eden3616
- ベストアンサー率65% (267/405)
AからBをどう表示しているのでしょうか。 インラインフレームでAからB(フレームセットで構成されたページ)を表示している場合の AからBのフレーム操作ということでしたらリンクタグのtargetでフレームのnameを指定すれば そのままリンクできます。 ■A.html <html> <body> <a href="D.html" target="main">D.html</a><br> <a href="E.html" target="main">E.html</a><br> <a href="F.html" target="main">F.html</a><br> <br> <iframe id="frameHogeid" name="frameHogename" src="B.html"></iframe> </body> </html> ■B.html <html> <head> <title>B</title> </head> <frameset rows="30%,*"> <frame src="C.html" name="menu"> <frame src="D.html" name="main"> </frameset> </html> ◇C.html(Bのメニュー) <html> <body> C.html/menu </body> </html> ◇D~F.html(Bのコンテンツ) <html> <body> D.html/top </body> </html> <html> <body> E.html/top </body> </html> <html> <body> F.html/top </body> </html>
補足
まずは早速の返答ありがとうございます。 また、インラインフレームにての解決方法も分かり易くご教授いただき、 重ねてありがとうございます。 そうですね、AからBへのリンク方法が具体的でないと 答えにくいですね、少し補足いたします。 今回の場合、リンクの許可は頂いている、とはいってもA.html以外のHPは、 別の方が管理するホームページとなりますので、インラインフレームでの表示や 当方のアドレスが表示される方法でのリンク(※)は失礼にあたるのではないかと考えています。 ※当方でフレームセットのZ.htmlをつくり、その中でC.htmlと必要なD.html等を 表示させる等の方法です。見た目は普通のリンクですが、アドレスは当方のZ.htmlとなります。 できれば普通にリンクするように、空白のページであったり、 新規ページ内でフレームセットを再現しつつ、内部の各ページを直接表示を行いたいのですが、 いかがでしょうか。 この方法も直リンクであり、失礼にあたる、と言われればその通りなのですが…。 過去ログでは普通のHTMLの記述ではできないのでは、との記述もありますが、 私はjavascriptの知識等はあまりないので困っています。
補足
返答ありがとうございます。 また、やさしく[例]もご記入頂き、ありがとうございます。 参考になります。 やはりフレームページへの適切なリンクというのは なかなか難しいんですね。 直リンクもしくは相手先コンテンツを当方のフレーム内で表示する、の どちらかで検討をしたいと思います。 ありがとうございます。