• ベストアンサー

「複数のフレームを同時に書きかえるには」

5画面フレームのホームページを作ろうとしています。 http://www.tohoho-web.com/www.htm こちらのサイトの 「複数のフレームを同時に書きかえるには」 http://www.tohoho-web.com/how2/frame.htm#multi を取り入れたいのですが、エラーが出て動いてくれません。 まず、コピペして ・FRAME1、FRAME2を、自分のフレーム名に置き換える ・aaa.htm、bbb.htmを、自分のページ名に置き換える とやってみたのですが… ほかにも置き換えなければならない箇所が??? そもそも、<script>の挿入位置は<body>内でいいのでしょうか? <head>内に書いてみても変化がなかったので… まったく無知で申し訳ないのですが、アドバイスおねがいします。

noname#81035
noname#81035
  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
noname#140925
noname#140925
回答No.1

先ずscriptの挿入位置ですが、関数系はhead内の方が良いと思います。 サンプルの書き換えについては、書かれている通りで良い筈ですが、エラーが出るのであれば、フレームを階層構造にしていませんか? サンプルの top.FRAME1.location.href の其々の部分が何を示しているのかは理解されているでしょうか? フレームの中で、更にフレームを指定していて、内側のフレームに対してサンプルの構文を適用しようとしているようだとエラーになると思います。 IEのオプションの詳細設定に「スクリプトエラーごとに通知を表示する」というのがありますから、そこにチェックを入れて、どこでエラーが出ているのか確認しながら原因を突き止めましょう。

noname#81035
質問者

お礼

いろいろ調べたところ、構文自体は間違っていなかったようです。 「セキュリティ保護のため~」というのもアップロードすれば消えると知りました(^^;) お騒がせしましたが、ありがとうございました。

noname#81035
質問者

補足

回答ありがとうございます。 index.htmlに5つのフレーム(仮に上・左・中・右・下)を表示し 中フレーム(中.html)のリンクをクリックすると、 中フレームと左フレームが変わるようにしたいのですが。 中.htmlの<head>内に<script>を挿入したところ、とりあえず動くようですが その前に 「セキュリティ保護のため、コンピュータにアクセスできるアクティブコンテンツを 表示されないよう制限しています。云々…」というのが出て これを許可しないとダメなようです。 エラーの通知は、いろいろやっていたら出なくなってしまったのですが ライン30、文字1、オブジェクトを指定してください と書いてありました。 (ソースの30行目にちょうどa href="#"~の記述がありますが、無関係でしょうか) 一つ一つのタグの意味は、申し訳ないですがよく理解していません… FRAME1はフレームの名前で、hrefはリンク先のアドレスを指定するものでしょうか? そのほかは、ちょっとわからないです…

その他の回答 (2)

  • N_A_O
  • ベストアンサー率66% (37/56)
回答No.3
noname#81035
質問者

お礼

どうやっても出る「セキュリティ保護のため~…云々」というのを エラーだと思っていたのですが、アップロードすれば消えるようで 私の勘違いでした(^^;) こちらのページの方法でも、きちんとリンクさせることができました。 ありがとうございました。

noname#100277
noname#100277
回答No.2

何だか基本や基礎を抜きにしてイキナリ応用の部分に手を付けようとしてませんか? フレームの意味する処や属性やファイル名等理解してからの方が良いのでは? 因みにするなら「二画面」からした方が良いでしょう。 厳しい様ですが、苦言を呈します。

noname#81035
質問者

お礼

ご意見ありがとうございました。

関連するQ&A

  • フレーム分割

     フレーム分割がどうしてもできません! 本ページ「AAA.html」 左フレーム用ページ「BBB.html」 右フレーム用ページ「CCC.html」 を作りました。BBB、CCCはそれぞれ単体ではちゃんと表示されます。 AAAの記述は次のとおりです <html> <head> <title>フレームの練習</title> </head> <framest cols="20%,80%"> <frame src="BBB.html" name="ひだり"> <frame src="CCC.html" name="みぎ"> <noframes> <body> </body> </noframes> </frameset> </html> AAA.htmlを開くと、何もない真っ白なページが表示されます。 "BBB.html" "CCC.html"はそれぞれ、ファイル名単体だけでなく ファイルのある場所の指定もしてみたのですがだめでした

  • 複数のプルダウンメニューの設置(左右フレーム)

    前回プルダウンメニューによる左右フレーム切り替えの質問をさせていただきました。 →http://oshiete1.goo.ne.jp/kotaeru.php3?q=1200405 申し訳ないですが、ここからまた新たに質問させてください。 上部(固定)、左フレーム(プルダウン設置)、右フレーム(メインページ)というページを作っています。 現在の状況はローカルのフォルダの中に ○上フレーム:flame1.htm(完成) ○左フレーム:flame2.htm(←ここに設置したい) ○右メインページ:1.htm 2.htm 3.htm(←1つ目プルダウン)4.htm 5.htm 6.htm(←2つ目のプルダウン) 7.htm 8.htm 9.htm(←3つ目のプルダウン)  と入っている感じです。 <HEAD>~<HEAD>部分 <script language="JavaScript"><!-- function myGo(){ mySelect = document.myForm.myMenu.selectedIndex; parent.main.location.href = document.myForm.myMenu.options[mySelect].value; } // --></script> <BODY>~<BODY>部分 <form name="myForm"> <select name="myMenu" onChange="myGo()"> <option value="1.htm" >第1章 <option value="2.htm" >第2章 <option value="3.htm" >第3章 </select> </form> ↑上記でひとつのプルダウンは設置できるのですが、 2つ目、3つ目のプルダウンの設置となると、 どこをどうしたらよいやらわかりません。 是非ご回答よろしくお願いいたします。

  • java-scriptでフレームを操作したい

    いつもお世話になっております。 java-scriptを使って フレームでないhtmlページから フレームを使ったhtmlページを開いて フレームのひとつ、またはそれぞれに 別のhtmlを開こうとして悪戦苦闘中です。 index.html(フレーム使用)のひとつ下に フォルダAがあり、aaa.html というページがあったとして このページからjava-scriptを使い、index.html を開き index.htmlのひとつ下にあるフォルダBのbbb.htmlを index.htmlのフレームのひとつに開きたいのです。 webを彷徨い、先輩諸氏の書いたスクリプトを参考にしましたが 目的を達成できずに困っております。 どなたか助けていただけないでしょうか。 よろしくお願いいたします。

  • フレームの縦スクロール

    フレームを使ったページの縦スクロールをさせる方法を教えて下さい。 dir1.htmのソース <HTML> <HEAD></HEAD> <FRAMESET ROWS="900pt,900pt"> <FRAME SRC="dir2no1.htm"> <FRAME SRC="dir2no2.htm"> </FRAMESET> </HTML> dir2no1.htmのソース <HTML> <HEAD></HEAD> <BODY> あああ </BODY> </HTML> dir2no2.htmのソース <HTML> <HEAD></HEAD> <BODY> いいい </BODY> </HTML> この3つのファイルで、dir1をIEで表示した時に、右に縦スクロールバーを表示したいです。 <FRAME SRC="dir2no1.htm"> と <FRAME SRC="dir2no2.htm"> のそれぞれをスクロールさせるのではなく、dir1.htmそのものに縦スクロールを付けたいのです。 実際にはdir1.htmはフレームの子供であり、縦サイズは固定値500です。 <FRAME SRC="dir2no1.htm"> と <FRAME SRC="dir2no2.htm"> の縦サイズは固定値です。ぞれぞれ900ぐらいにしてテストしたいです。 テストではdir1.htmの親フレームは付けずに、IEで直接dir1.htmにアクセスしてスクロールバーが使えることを確認したいです。 900,900の子供を持った500の親だから、親に縦スクロールを付けたいのです。 JavaScripは使えます。 <iframe>を使わないことが条件です。

  • フレーム

    こんにちわ。 今、フレームを用いてホームページを作成しています。 そのなかでJavascriptを用いて複数のフレームを同時に変更しようとしているのですが、 上手く出来ません。Javascriptの参考書等を見るとフォームボタンをクリックした時に 複数のページを変更する方法はよく載っているのですが、gifの画像をクリックした時に 複数のページを同時に変更したいのです。 ご存知の方がいらっしゃいましたらご返答をお願いします。 ちなみに、参考書等に載っていたフォームボタンをクリックする場合の方法を書いておきます。 フレーム名はf1,f2,f3としていて、f1内のフォームボタンをクリックするとf2,f3が変更される ものが載っていたのでその中のf1を書いておきました。 よろしくお願いします。 <HTML> <HEAD> <TITLE>F1.HTM</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function ChangFram(P1,P2){ parent.f2.location.href=P1 parent.f3.location.href=P2 } //--> </SCRIPT> </HEAD> <BODY> <FORM NAME="CHANG"> <INPUT TYPE="button" NAME= "chang1" VALUE=" Change!! " onClick="ChangFram('FP2.HTM','FP3.HTM')"> <P> <INPUT TYPE="button" NAME= "chang2" VALUE=" 元に戻す " onClick="ChangFram('F2.HTM','FP1.HTM')"> </FORM> </BODY> </HTML>

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

    フレームなしページからフレームありページ内の指定アンカー(ラベル)へ飛ばしたいと思い、過去ログq135419を参考に JavaScript を埋め込もうとしていますが、うまくいきません。 フレームありのページは3分割してあり、上をaaa.htm、左をbbb.htm、右をccc.htmと作ってあります。 -例- <html> <head><title></title> </head> <FRAMESET rows="82,*" cols="*" frameborder="NO" border="0" framespacing="0"> <FRAME src="framef/aaa.htm" name="ue" frameborder="no" scrolling="NO" noresize id="header"> <FRAMESET rows="*" cols="228,*" framespacing="0" frameborder="NO" border="0"> <FRAME src="framef/bbb.htm" name="hidari" frameborder="no" scrolling="auto" noresize id="navi"> <FRAME src="ccc.htm" name="main" frameborder="no" scrolling="auto" id="main"> </FRAMESET> <NOFRAMES> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P></NOFRAMES> </FRAMESET> </html> この内、ccc.htmにアンカー(ラベル)を指定し、フレームなしページからフレーム内のそのアンカー(ラベル)まで飛ばしたいと思っていますが、過去ログで提示してあるJavaScriptを当方のページで作ってあるものに置き換えてもうまく表示されません。(何も表示されません。) そもそも提示のJavaScriptでは3分割に対応してないのでしょうか。 元のページは業者で作成してもらったもので、フレームのページはcssとか使用され凝ったものになっています。それも何か関係あるのでしょうか。 よろしくお願いいたします。

  • 2つ親のフレームにアクセスしたい

    window指定で困っています。 WebサイトにUPしたいWebページがフレーム転送を使っているため、 ローカルやテスト用サーバの環境とフレームツリーが変わってしまいます。 その環境でツリー最下層から2つ上のFrameのform内容を読み書きしたいのです。 できればローカルにフレーム転送環境を作りたくないのですが、 良い方法はないでしょうか。 ローカルでは top.aaa.bbb.ccc.ddd の位置から top.aaa.bbb.document.forms.elements.value ="aaa"; とアクセス可能。 しかしUP後は top.xxx.aaa.bbb.ccc.ddd の位置から top.xxx.aaa.bbb.document.forms.elements.value ="aaa"; にアクセスすることになる。 フレーム分割をまとめればよさそうですが、parentのフォームに データを保管しておいて、フレーム分割を縦横で変えたいので… parent.parent.document.forms...とやってみましたがダメでした。 なんかクイズみたいになってしまいますが、よろしくお願いします。

  • フレームサイズの変更について

    過去ログを参照していたら、次のようなサンプルを発見したのですが、 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>

  • フレームのターゲット指定について

    フレームを使ったHPを製作しているんですが フレームのターゲット指定がなぜかうまくいきません。2分割したフレームなんですけどもフレームタグは <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>タイトル</title> </head> <frameset cols="100,*" framespacing="0" frameborder="NO" border="0"> <frame src="t_menu.htm" name="menu" scrolling="NO" noresize id="menu"> <frame src="t_main.htm" name="main" id="main"> </frameset> <noframes> <body> <P> このページをご覧いただくにはフレーム対応のブラウザが必要です。 </p> </body> </noframes> <script language="JavaScript"> <!-- window.open = SymRealWinOpen; //--> </script> </html> です。 t_menu.htmで指定したページを全てt_main.htm開きたいと思い、<a href="about.htm" target="main">を入れてもなぜか新しい窓が開いてしまいます。<a href="about.htm" target="menu">とやるとちゃんとmenuのところで開くようになります。何度やってもmainのほうに開いてくれません。何がいけないのでしょうか? 製作環境はDreamweaver MX2004、IE6.0です。 宜しくお願いします。

  • スクリプト外部ファイルを変数で指定する方法

    スクリプト外部ファイル(例えば、bbb.js)をhtml内へ読込むには、 <script language="JavaScript" scr="bbb.js"></script> と書く事を知りました。 ファイル名を変数(aaa="bbb.js")に入れて、変数aaaで読込む方法を教えて下さい。 次のように、変数aaaにファイル名bbb.jsを代入して、読込みたいのですが、動作しません。 <body> <script language="JavaScript"> aaa=location.search; aaa=aaa.substr(1,(aaa.length - 1)); </script> <script language="JavaScript" src=aaa></script>