dポイントプレゼントキャンペーン実施中!

 以下のプログラムですが!
仕様が二分割の縦分割フレームが特徴です。
 左側フレームにリンクタグがあり、そのリンクタグをクリックすると、右フレームに
HPが観れるようになっています。
 しかし、プルダウンメニューのYahooをクリックしたらakkotyan.html、は左フレームになぜか
出てきてしまって困っています。
 
それともう1つ、プルダウンメニューのhouyhnhnmsをクリックしても何もフレームに出てこなくて無反応です?
 そのほか
  「クリックで動くプログラ」と「知恵袋 竹島問題」はちゃんと右フレームに出てきて
 問題ありません。
  プルダウンメニュータグのHPを右フレームに出すにはどうしたらできますか!?
 宜しくお願いします。
--------------------------------------------------------
左フレーム

<html>
<head>
</head>
<frameset cols="26%,*">
<frame src="left.html"name="menu">
<frame src="pronagare.html"name="contents">

</frameset>
<html>

-------------------------------------------------------
右フレーム

<html>
<HTMl>
<HEAD>
<TITLE>プルダウンメニューのHPを右フレームへ表示したい</title>

<script>addEventListener('load',function(ev){
document.forms['jump'].elements['to'].addEventListener('change',function(ew){
var map = {
yahoo: './akkotyan.html',
houyhnhnms: 'http://google.com/search?tbm=isch&q=houyhnhnms'
};

var url = map[ew.target.value];
if (url) window.location = url;
},false);
},false)</script>

<body>

<form name=jump><select name=to>
<option value='' selected>-</option>
<option value=yahoo>Yahoo</option>
<option value=houyhnhnms>Houyhnhnms</option>
</form>
</select>
<P>
<a href="pronagare.html"target="contents">クリックで動くプログラム</a><br>

<a href="takesima.html"target="contents">知恵袋 竹島問題</a><br>

</body>
</html>

A 回答 (2件)

別フレームを操作するなら



誤: window.location = url;
正: window.top.frames['contents'].location = url;

ただし昨今はフレームについて厳しくなりましたので、
上記の処理を行うと場合によってはセキュリティエラーが発生する危険性もあります。
参考) https://developer.mozilla.org/ja/docs/HTTP/X-Fra …


余計なお節介ではありますが

大量にあるリンクをまとめるなら、プルダウンメニューより
ツリー型メニュー とか treeview とか呼ばれる方法が望ましいと思います。

あとWebブラウザのフレーム機能は、将来性がよろしくないので
今のうちから代替手段を考慮すべきではないでしょうか。
    • good
    • 0
この回答へのお礼

ご回答誠にありがとうございました。
ご回答くださった、以下のプログラムに修正したところ
window.top.frames['contents'].location = url;
 左フレームのプルダウンメニュータグのYahooをクリックすると
なんと見事に右フレームにHPが現れました。
 最初の他者様の回答で、絶望的とだと思い込んでいましたが、できたから、とてもよかったです。
セキュリティなどの問題ですが、
 イントラネットなので、外部と回線自体が接続されていないので 攻撃など心配はないです。
 セキュリティの問題は全くと言っていいほど
 問題はございません。

お礼日時:2014/03/26 20:18

・フレームは止めましょう。

特に他サイトへのリンクには著作権の問題もあり使用すべきではありません。
⇒フレーム( https://www.google.co.jp/search?q=%E3%83%95%E3%8 … )
 他サイトの場合は新規ウィンドウで開くように・・
・ナビゲーションですからちゃんとナビゲーションとしてマークアップしましょう。
・<br>は通常使いません。一つの段落でありながら改行が必要な場合
 HTML4だと大住所と小住所の境界、HTML5だと詩のように改行自体がコンテンツであるとき
 以外は使わない。行間はスタイルシートで制御しましょう。
・javascriptはリンクには使わない
 javascriptはすべてのユーザーエージェントが利用できるわけじゃない。
 「JavaScript・【中略】・などの特殊な機能が使用されているためにサイトの一部がテキスト ブラウザで表示されない場合、検索エンジンのスパイダーがサイトをうまくクロールできない可能性があります。( https://support.google.com/webmasters/answer/357 … )」

 単純に
<div class="nav"><!-- class名などで文書構造を示す -->
 <ol>
  <li>
   <ol>
    <li><a href="https://www.google.com/images?hl=ja&q=Lilliput">リリパット</a></li>
    <li><a href="https://www.google.com/images?hl=ja&q=Brobdingna …ブロブディンナグ</a></li>
    <li><a href="https://www.google.com/images?hl=ja&q=houyhnhnms">フウイヌム</a></li>
   </ol>
  </li>
  <li><a href="./pronagare.html">クリックで動くプログラム</a></li>
  <li><a href="./takesima.html">知恵袋 竹島問題</a></li>
 </ol>
</div>
とマークアップして、スタイルシートで下の階層だけプルダウンにすればよい。
    • good
    • 0
この回答へのお礼

 ご回答誠にありがとうございます。
 質問したことで、プルダウンメニューはフレーム式だと使用できないことが分かりました。
 しかし、
フレーム式は現在やめようとは思っておりません。
 
 質問したHPはイントラネットの業務で使用しています。
 、リンクタグが常に左に見えているので
 HPを開いていても、電話等で質問が来た場合お目当てのタグが常に左に見えているので、直ぐに開いて
回答をすることができるので、私的にはとても使いやすいです。
 しかし、プルダウン方式はあきれめて、別な方法を考えます。

 

お礼日時:2014/03/25 19:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!