• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フレームなしPからフレームありP内へのアンカーへ)

フレームなしPからフレームありP内へのアンカーへ

このQ&Aのポイント
  • フレームなしページからフレームありページ内の指定アンカー(ラベル)へ飛ばしたいと思い、過去ログq135419を参考に JavaScript を埋め込もうとしていますが、うまくいきません。
  • ccc.htmにアンカー(ラベル)を指定し、フレームなしページからフレーム内のそのアンカー(ラベル)まで飛ばしたいと思っていますが、過去ログで提示してあるJavaScriptを当方のページで作ってあるものに置き換えてもうまく表示されません。
  • 元のページは業者で作成してもらったもので、フレームのページはcssとか使用され凝ったものになっています。それも何か関係あるのでしょうか。

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

  • ベストアンサー
  • cero_d
  • ベストアンサー率87% (14/16)
回答No.1

過去ログq135419の <SCRIPT language="JavaScript"> <!-- rData = unescape(location.search).substr(1,9999); rightfrm = "d.html" + rData; document.write('<FRAMESET cols="20%,*" frameborder="YES" border="2" framespacing="2" rows="*"><FRAME name="leftFrame" scrolling="NO" noresize src="c.html">'); document.write('<FRAME name="mainFrame" src="' + rightfrm + '"></FRAMESET>'); //--> </SCRIPT> を <SCRIPT language="JavaScript"> <!-- rData = unescape(location.search).substr(1,9999); rightfrm = "ccc.htm" + rData; document.write('<FRAMESET rows="82,*" cols="*" frameborder="NO" border="0" framespacing="0"><FRAME src="framef/aaa.htm" name="ue" frameborder="no" scrolling="NO" noresize id="header">'); document.write('<FRAMESET rows="*" cols="228,*" framespacing="0" frameborder="NO" border="0"><FRAME src="framef/bbb.htm" name="hidari" frameborder="no" scrolling="auto" noresize id="navi">'); document.write('<FRAME src="' + rightfrm + '" name="main" frameborder="no" scrolling="auto" id="main">'); document.write('</FRAMESET><NOFRAMES><P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P></NOFRAMES></FRAMESET>'); //--> </SCRIPT> に変えるだけで出来ますが・・・ 例で書くと <html> <head><title></title> <SCRIPT language="JavaScript"> <!-- rData = unescape(location.search).substr(1,9999); rightfrm = "ccc.htm" + rData; document.write('<FRAMESET rows="82,*" cols="*" frameborder="NO" border="0" framespacing="0"><FRAME src="framef/aaa.htm" name="ue" frameborder="no" scrolling="NO" noresize id="header">'); document.write('<FRAMESET rows="*" cols="228,*" framespacing="0" frameborder="NO" border="0"><FRAME src="framef/bbb.htm" name="hidari" frameborder="no" scrolling="auto" noresize id="navi">'); document.write('<FRAME src="' + rightfrm + '" name="main" frameborder="no" scrolling="auto" id="main">'); document.write('</FRAMESET><NOFRAMES><P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P></NOFRAMES></FRAMESET>'); //--> </SCRIPT> </head> </html> こう

hiro7589
質問者

お礼

返信ありがとうございます。 また、例まで出していただきまして助かりました。 早速置き換えをしましたところ、無事に動作しました。 JavaScriptに関してもっと勉強していきたいと思います。 ありがとうございました。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

仕組みがわかって応用しないと・・ 単純にそのフレームセットの <FRAME src="ccc.htm" name="main" frameborder="no" scrolling="auto" id="main"> </FRAMESET> を <FRAME src="ccc.htm#anchorName" name="main" frameborder="no" scrolling="auto" id="main"> </FRAMESET> に変更するだけです。  フレームセットのページで!!!。HTTP_REFERERを参照して、その値がリンク元のページでしたら、javascriptで書き換えればよいです。 ★フレームは、1999年のHTML4.01の勧告以来、非推奨で、それ以前のドラフト以降フレームを使ったページを作るプロはいないでしょう。 ★javascriptを使用すると、それを利用できないユーザーには・・。 ★『JavaScript、Cookie、セッション ID、フレーム、DHTML、Flash などの特殊な機能が使用されているためにサイトの一部がテキスト ブラウザで表示されない場合、検索エンジンのスパイダーがサイトをうまくクロールできない可能性があります。( https://support.google.com/webmasters/answer/35769?hl=ja#2 )』 ※最も簡単なのは、もうひとつ上記の通りフレームセットを作成して、それをリンク先に指定すれば良いです。  一度 Another HTML-lint 5( http://www.htmllint.net/html-lint/htmllint.html )  などでチェックしてみたら???

hiro7589
質問者

お礼

返信ありがとうございます。 先に回答いただけた方の方法でうまくいきましたが、ORUKA1951様の方法についてもJavaScriptに関しても仕組み等もっと勉強していきたいと思います。 また、フレームについての情報もありがとうございます。 今回は取り急ぎ回答いただいた方法を取りましたが、今後フレームなしのページ作成に取り組んでいきたいと思います。 ありがとうございました。

関連するQ&A

専門家に質問してみよう