location.hrefを使用したFRAME表示

このQ&Aのポイント
  • JavaScriptのlocation.hrefを使用して、フレームの右側に指定したURLを表示する方法を教えてください。
  • フレームの右側に指定したURLを表示する際、location.hrefを使用するにはメタタグ内で指示を指定する必要があります。
  • 具体的には、<head>タグ内の<script>タグにlocation.hrefの指示を記述し、フレームの右側を指定する必要があります。
回答を見る
  • ベストアンサー

location.hrefを使用したFRAME表示

location.hrefを使ったjavascriptを作ろうとしています。 <script type="text/javascript"><!-- location.href = "http://www.yahoo.co.jp/"; // --></script> の改良版として、http://www.yahoo.co.jp/をフレームの右側に 表示させたいと考えています。 (src使用ではなくjavascriptのlocation.hrefを使うことがMUSTです) <head> <script type="text/javascript"><!-- right.location.href = "http://www.yahoo.co.jp/"; // --></script> </head> <body> <FRAMESET cols="50%,50%"> <FRAME name="left" src="left.html"> <FRAME name="right" src="right.html"> </FRAMESET> </body> としてみましたがうまくいきません。 location.hrefはmetaタグ内でしか有効ではないにも関わらず right.の指示をメタタグ内部で指定していないことが原因かも しれません。 javascriptのlocation.hrefを使ってフレームの右側に 表示させる方法をご教授願います。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

scriptが書かれている時点でrightが定義されていない スクリプトをフレームの下にもっていくか window.onload=function(){ right.location.href = "http://www.yahoo.co.jp/"; } のようにウィンドウが読み込まれたあとに実行する

tajix14
質問者

お礼

有難うございます。 window.onload=function(){ right.location.href = "http://www.yahoo.co.jp/"; } でうまくいきました。助かりました。

関連するQ&A

  • マウスオーバーでフレームに対応した内容を表示・・・。

    こんにちは。 いつもお世話になっております。 参考にしたサイト http://www.openspc2.org/reibun/javascript/frame/003/index.html 【内容】 フレーム分割のページ等の内容は以下の通りです。 ●フレーム分割ページ <html> <head> <title>マウスオーバーで右側フレームに対応した内容を表示する</title> <frameset cols="20%,*"> <frame src="code_left.html"> <frame src="code_right.html" name="rightFrame"> </frameset> </head> </html> ●左側のページ(code_left.html) <html> <head> <title>マウスオーバーで右側フレームに対応した内容を表示する</title> <script language="JavaScript"><!-- function setFrame(jpURL) { parent.rightFrame.location.href = jpURL; } // --></script> </head> <body> <a href="#" onMouseover="setFrame('page1.html')">その1</a><br> <a href="#" onMouseover="setFrame('page2.html')">その2</a><br> </body> </html> で、意図した動きが出来たのですが、その1をクリックするとcode_left.htmlが別窓で開いてしまいます。 参考にしたサイトのサンプル画面ではこのような 動きにはならないのに、なぜ別窓が開いてしまうのか がわからないのです。 どうかご指導よろしくお願いいたします。

  • フレーム内から親ウィンドウにロケーション?

    こんにちは。 どなたかよい解決策をご存知でしたら教えてください。 フレームで切られたウィンドウの一部のフレームから、PHP(ver.3)でページをロケーションで呼ぶと、そのフレームの中に呼んだページが表示されてしまいます。 JavaScriptは使わずに、親ウィンドウにページを表示させることは出来ないでしょうか、、、 よろしくお願いいたします。 以下はイメージサンプルです。 ■frame.html <html> <head><title>フレームセット</title></head> <frameset cols="100,*" frameborder="NO" border="0" framespacing="0"> <frameset name="left" rows="60,*" frameborder="NO" border="0" framespacing="0"> <frame name="a" noresize scrolling="NO" src="./test1.html"> <frame name="b" noresize src="./test2.html"> </frameset> <frameset name="right" rows="44,*" frameborder="NO" border="0" framespacing="0"> <frame name="c" noresize scrolling="NO" src="./test3.html"> <frame name="d" noresize src="./locat.php3"> </frameset> <noframes> このページはフレーム対応のブラウザでご覧ください。 </noframes> </frameset> </html> ■locat.php3 <? header("Location: ./test4.html"); exit(); ?> ■test1.html <html> <head><title>テスト1</title></head> <body> 左上 </body> </html> ■test2.html <html> <head><title>テスト2</title></head> <body> 左下 </body> </html> ■test3.html <html> <head><title>テスト3</title></head> <body> 右上 </body> </html> ■test4.html <html> <head><title>テスト4</title></head> <body> このページをウィンドウ全画面に表示 </body> </html>

    • 締切済み
    • PHP
  • 他のフレームにあるボタンを使用不可にするには?

    2つのフレームに分割した画面で、一方のフレームにあるボタンを押したら、他のフレームにあるボタンを使用できなくしたいのですが、うまくいきません。下記のスクリプトでは、エラーになってしまいます。どのようにしたら良いでしょうか、よろしくお願いいたします。 <フレームの設定> <html> <head><title>フレームを縦に分割する</title></head> <frameset cols="50%,50%"> <frame src="left.html" name="light_frame" frameborder=1 border=1> <frame src="right.html" name="left_frame" frameborder=1 border=1> </frameset> </html> <left.htmlの内容> <html> <head> </head> <body> <form name="myform"> <input type="button" name="bt_del" value="削除"> </form> </body> </html> <right.htmlの内容> <SCRIPT Language="JavaScript"> function func1(){ //NG parent.left_frame.document.form.myform.bt_del.disabled = true; //これもNGでした //parent.left_frame.document.forms['myform'].bt_del.disabled = true; } </SCRIPT> <html> <head> </head> <body> <p><input type="button" value="変更" onclick="func1()" > </body> </html> 以上です。

  • ハイライト表示が消えてしまう

    フレームを使って、右側のリンクリスト(right.html)をクリックした際に、左側に表示されたHTMLの文言をハイライト表示させたいと思っています ある程度は出来てきたのですが、一瞬ハイライトしてすぐに消えてしまうのです・・・ どなたかお助けして頂けませんでしょうか 宜しくお願い致します ~index.html~ <head> <meta content="text/html; charset=Shift-JIS" http-equiv="content-type"> <title>ハイライト表示</title> </head> <frameset cols="1031,*" frameborder="no" border="0" framespcing="0"> <frame src="#" scrolling="yes" id="left" name="left"> <frame src="right.html" scrolling="yes" id="right" name="right" noresize="noresize"> </frameset> <body> </body> </html> ~right.html~ <head> <meta content="text/html; charset=Shift-JIS" http-equiv="content-type"> <script language="javascript"> <!-- function change(str,url){ parent.left.location.href=url;  var re=new RegExp(str,"g"); var b=parent.left.document.body; var ss=b.innerHTML; b.innerHTML= ss.replace(re,"<span style=\"background:#77ff77;font-weight:bold\">"+str+"</span>"); } //--> </script> </head> <body> <ls><a href="#" onclick="change('建物','left_1.html')">left_1.html</a></ls> <ls><a href="#" onclick="change('建物','left_2.html')">left_2.html</a></ls> <ls><a href="#" onclick="change('建物','left_3.html')">left_3.html</a></ls> </body> </html> ちなみにleft_1.html等のリンク先のHTMLは修正する事が出来ません 何卒宜しくお願い致します

  • location.hrefが動かない・・・

    F5が押された場合に指定したURLに飛ばすようにしたいのですがなかなかうまくいきません・・・ ブラウザはFirefox 2.0.0.7を使用しています コードは以下の様にしております <script type="text/javascript"><!-- function key(keyCode){ if (keyCode == 116){ location.href = "http://www.google.co.jp/"; } } --></script> <body onKeyDown="key(event.keyCode)"> </body> 指定URLはGoogleにしています これ状態でF5を押してもなにも起こらず普通に更新されるだけです location.href = "http://www.google.co.jp/";の部分をdocument.write('TEST');などのようにdocumet.writeに書き換えると普通に指定した文字列が表示させます location.hrefと同様にwindow.location.hrefやlocation.replaceでも指定URLに飛ばされません documet.writeは動くのでF5が押されたかどうか判断するコードは間違っていないと思うのですが・・・ ちなみにIEでもダメでした 誰か原因がわかる方が居られましたら教えてください よろしくお願いします

  • html リンクを別フレームに表示したい

    htmlでリンク先を別フレームに表示したいです。 今は、縦にフレームを2つ作っていて、本当は左側の文字をクリックしたら右側に表示されるようにしたいのですが、別枠のウィンドウが開いてしまいます。 どこがいけないのでしょうか… このページ以外で編集する必要がありますか? http://noula.himegimi.jp/ 左枠 <html> <head> </head> <body bgcolor="#fff0f5" text="#fa8072"> <font size="2"> <a href="toppage.html" target="left">TOP</a><br> <a href="about.html" target="left">ABOUT</a><br> PROFILE<br> WHAT'S NEW<br> VOICE<br> SONG<br> BLOG<br> WORK<br> LINK<br> CONTACT</font><br> </body> </html> フレーム設定 <html> <frameset cols="10%,*" frameborder="no"> <frame name="right" src="menu.html"> <frame name="left" src="toppage.html"> </frameset> </html> よろしくお願いします

  • エラー:書き込みができません が出てしまいます

    フレーム(rightup) が表示しているURLを調べて表示させるJavaScriptを書きました。rightupの表示内容が初期状態のときは動きます。ところが、初期状態と異なるURLを表示させると以下のようなエラーが出てしまいます。 エラー:書き込みができません 以下、フレーム定義のHTML、URLを調べて表示させるJavaScriptの含まれているHTMLの抜粋を示します。 理由等お分かりの方教えていただけないでしょうか。よろしくお願いします。 フレーム定義のHTML(抜粋) <FRAMESET cols="59%,41%"> <FRAME src="left.html" name="left" id="left"> <FRAMESET rows="85%,15%"> <FRAME src="right_up.html" name="rightup" id="rightup"> <FRAME src="right_bottom.html" name="rightbottom" id="rightbottom"> </FRAMESET> <NOFRAMES> <BODY> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P> </BODY> </NOFRAMES> </FRAMESET> JavaScriptの含まれているHTML(抜粋) <HTML> <HEAD> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> <SCRIPT LANGUAGE = "JavaScript"> <!-- function ShowProperty() {top.rightbottom.document.write(window.top.rightup.location.href)} //--> </SCRIPT> </HEAD> <BODY> <CENTER> <FORM NAME = "fom"> <INPUT TYPE="button" value="GO" onclick=ShowProperty()> </FORM> </CENTER> <TABLE border="1" width="100%"> <TBODY> <TR><TD><A href="http://www.asahi.com" target="rightup">朝日</A></TD></TR> <TR><TD><A href="http://www.yahoo.co.jp" target="rightup">Yahoo</A></TD></TR> </TBODY> </TABLE> </BODY> </HTML>

  • フレームが表示できません

    現在ホームページをつくっているのですが、フレームのhtmlをいれても、「このページは表示できません」とでてきます。 一応同じ質問のページを見てきたのですが、よく分かりませんでした。 使っているhtmlは、 <html> <head> <title></title> </head> <frameset cols="200,*" border="0"> <frame name="left" src="b.html" scrolling="yes"> <frame name="right" src="c.html" scrolling="yes"> </frameset> <noframes> </noframes> <html> です。宜しくお願いします。

    • ベストアンサー
    • HTML
  • フレームでのcols設定について

    フレームを使用してホームページを作っている者です。 framesetのcolsの設定にて ブラウザの中心から左へ329ピクセル左をフレームの境目に設定したいのですが、 可能でしょうか? 気持ちとしては <frameset cols="50%-329,*"BORDER="0"> と設定したい感じです。 JavaScriptを使用して ブラウザの幅を取得して半分にして329ピクセル加算する方法で実現しようと考え ------------------------------------------------------------------------------ <html lang="ja"> <HEAD> <title>フレーム設定</title> </HEAD> <script language="javascript" type="text/javascript"> //ブラウザ幅を求めるgetBrowserWidth() //my-notebook(http://osima.jp/blog/js-getBrowserWidth/index.html)さんから拝借 function getBrowserWidth() { if ( window.innerWidth ) { return window.innerWidth; } else if ( document.documentElement && document.documentElement.clientWidth != 0 ) { return document.documentElement.clientWidth; } else if ( document.body ) { return document.body.clientWidth; } return 0; } </script> <script language="javascript" type="text/javascript"> //フレームの左側の幅を求めるLeftWide() function LeftWide() { var leftwide = (getBrowserWidth())/2-329; return leftwide; } //framesetを出力するFrameSet() function FrameSet() { var output = '<frameset cols="' + LeftWide() + ',*"BORDER="0">'; document.write(output); } </script> <script language="javascript" type="text/javascript"><!-- //FrameSet()の呼び出し FrameSet(); // --></script> <frame src="./左のページ.html" name="left" marginwidth="0"> <frame src="./右のページ.html" name="right"> </frameset> </html> ------------------------------------------------------------------------------ と書いたのですが、 getBrowserWidth() を<BODY>~</BODY>内に書かないとブラウザ幅を取得してくれないらしく、 return 0;が帰ってきてしまい、左のページだけ表示され期待した結果が得られませんでした。 framesetの有るHTMLには<BODY>~</BODY>は定義できないのでここで詰んでしまいました。 ブラウザの中心から左へ329ピクセル左をフレームの境目に設定出来るのであれば どんな方法でも構いません。 お知恵を拝借させてください。よろしくお願いします。 追記 当方ブラウザはIE9を使用しております。 HTML、JavaScript共に初心者ではありませんが、 趣味程度の浅い知識しか御座いません。

    • ベストアンサー
    • HTML
  • フレームサイズの変更について

    過去ログを参照していたら、次のようなサンプルを発見したのですが、 IEでは動作しますが、FireFoxではエラーになってしまいます。 どこを修正すれば動くようになるでしょうか? ■frame.html■ <html> <head><title></title> <script language="javascript"> <!-- document.write(frset('40%','60%','a.htm?','1.htm?')) function frset(a,b,f1,f2){ var frset= '<title>frame</title>\n' +'<frameset cols="'+a+','+b+'">\n' +'<frame src="'+f1+'">\n' +'<frame src="'+f2+'">\n' +'</frameset>\n' return frset } //--> </script> </head> </html> ■a.html■ <html> <head><title></title> </head> <body> 右のリンクで<br>フレームのサイズ<br>が変わるよ! </body> </html> ■1.html■ <html> <head><title></title> <script language="javascript"> <!-- function chsize(a,b){ if(location.search==""){ if(document.all){ parent.document.all.tags("frameset")[0].cols=a+","+b }else{ //parent.document.open() parent.document.write(frset(a,b,parent.frames[0].location.href+"?",parent.frames[1].location.href+"?")) parent.document.close() } } } //--> </script> </head> <body onload="chsize('40%','60%')"> こっち側60%です。 <br> <a href="2.htm">こっち側を40%にする!</a> </body> </html> ■2.html■ <html> <head><title></title> <script language="javascript"> <!-- function chsize(a,b){ if(location.search==""){ if(document.all){ parent.document.all.tags("frameset")[0].cols=a+","+b }else{ //parent.document.open() parent.document.write(frset(a,b,parent.frames[0].location.href+"?",parent.frames[1].location.href+"?")) parent.document.close() } } } //--> </script> </head> <body onload="chsize('60%','40%')"> <a href="1.htm">こっち側を60%にする!</a> <br> こっち側40%です。 </body> </html>

専門家に質問してみよう