flame越しの命令をjavascriptで実行する方法

このQ&Aのポイント
  • flame越しに引数入りの命令をjavascriptで送る方法について、ディレクトリ構造やファイル配置の問題を解決する方法を教えてください。
  • frame1.htmlからframe2.htmlの関数を実行する方法について質問です。
  • ディレクトリ構造でframe1.htmlが上位ディレクトリにある場合、javascriptでflame越しの命令を正しく実行する方法を教えてください。
回答を見る
  • ベストアンサー

flame越しの命令

javascriptを使ってflame越しに引数入りの命令を送ろうとしています。 ┣ frame1.html ┣ folder ┃┣index.html ┃┣frame2.html というディレクトリ構造になっています。 frame1.htmlからframe2.htmlの関数を実行しようと思っています。 ○frame1.htmlのjavascriptは <script type="text/javascript" language="javascript"> <!-- function sendData(values) { parent.set2.hoge(values); } // --> </script> ○frame2.htmlのjavascriptは <script type="text/javascript" language="javascript"> <!-- function hoge(values) { alert(values); } //--> </script> です。 index.htmlは <HTML> <HEAD> <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=x-sjis'> <TITLE>テキスト</TITLE> </HEAD> <FRAMESET COLS=166,* FRAMEBORDER=0 FRAMESPACING=0 BORDER=0> <FRAME SRC="../frame1.html" name="set1"> <FRAME SRC="frame2.html" name="set2"> </FRAMESET> </HTML> となっています。 全てのhtmlが同じディレクトリ内ならこの書き方でうまくいくのでが、frame1.htmlが上のディレクトリにあるのでうまくいきません。 どなたか解決方法が分かる方いませんか? よろしくお願いします。

  • jsqrm
  • お礼率45% (16/35)

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

同様の質問をここで、最近みかけました。 http://oshiete1.goo.ne.jp/qa4625934.html top.set2.hoge(values); だと思う

jsqrm
質問者

お礼

yyr446さん ありがとうございます! topで指定するとfirefox以外みれるようになりました!

関連するQ&A

  • javascriptからframeへの出力方法

    <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'> <html> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> function init(){ $("f1").innerHTML = "hoge"; $("f2").innerHTML = "piyo"; } </script> </head> <frameset cols="50%,*" onload="init()" > <frame id="f1"> <frame id="f2"> </frameset> </body> </html> 上記、二つに分けたフレームにそれぞれ"hoge"と"piyo"と表示したいのですが出来ません。フレームにjavascriptからアクセスするにはどうしたらよいですか?

  • フレームを下にスクロールさせた状態で表示するにはどうすればよいのでしょうか?

    フレームを下にスクロールさせた状態で表示するにはどうすればよいのでしょうか? 次のようなフレームを使ったHTMLにおいて、ページが表示されたときに、 f2と名前のついたフレームを100pxだけ下にスクロールさせた状態で表示するようにするには どうすればよいのでしょうか。 フレームf1、フレームf2ともに別のドメインのページを読み込んでいますので、 下記のHTMLの 【ここに記述する】 と書いてある場所に記述する方法は ないものでしょうか? <html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>フレーム</title> <script type="text/javascript"><!-- // 【ここに記述する】 //--> </script> </head> <frameset rows="100,*" frameborder=0> <frame name="f1" src="http://www.hoge.com/"> <frame name="f2" src="http://www.foo.com/"> </frameset> </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
  • 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を使ってフレームの右側に 表示させる方法をご教授願います。

  • javascriptが動かない

    javascript初心者です。 画面を三分割し、画面ロード時にそれぞれのフレームの位置を表示するという、サンプル的なのを作ったのですが、画面は分割されますが、上、左、右 ってのが表示されないです。 javascriptの記述の仕方が根本的に違いますかね? 下記に書いてあるのがそのソースコードです。 どなたかお願いします。 <html> <head> <title>FrameSample</title> <script type="text/javascript" > function frameinit(){ frames["top"].document.write("上"); frames["left"].document.write("左"); frames["right"].document.write("右"); } window.onload=frameinit; </script> </head>    <frameset rows="100,*">      <frame src="newpage4.html" name="top" >       <frameset cols="50,50">          <frame src="newpage4.html" name="left">         <frame src="newpage4.html" name="right">        </frameset>   </frameset> </html>

  • textarea入力された文字をjump先のディレクトリにしたい

    このタイトルではちょっと分かり辛いですね。 leftframeにあるtextareaに会員名を入力すると同じ名前の階層のhtmlへ飛ぶようにしたいのです。それを右フレームに表示できないのです。 例えばabcさんがいた場合、/member/abc/my.htmlになります。 parent指定をしないとleftframeには出てくるのですが・・・ これはframesetなどがまずいのでしょうか? 大きく左右に分けられますが、右には入れ子のように上下2段のframeがあります。 以下にそのソースです。 <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <frameset cols="160,1*" frameborder="NO" border="0" framespacing="0"> <frame name="leftFrame" scrolling="NO" noresize src="side2.html"> <frameset rows="1*,24" frameborder="NO" border="0" framespacing="0"> <frame name="home-1" src="top-ordermade.htm"> <frame name="bottomFrame" scrolling="NO" noresize src="frame-3.htm"> </frameset> <noframes> <body bgcolor="#FFFFFF"> <script language="JavaScript"> <!-- function Change(){ url="http://www.○○.co.jp/member/"; wo=document.MY.id.value; parent.home-1.location.href=url+wo+"/my.html"; } // --> </script> <form name="MY"> <input type="text" name="id" size="15"> <input type="submit" value="GO!"onClick="Change()"> </form>  </body>  </noframes> </frameset> </html> どなたか宜しくお願いします。

  • JScript server2008 window.openについて

    JScript に関するバグ情報等が有れば教えて下さい。 具体的には Windows Web Server 2008 R1 + IE8 の環境にて window.open 操作をした場合にターゲット指定をうまく認識しない模様です。 フレーム内親ウィンドウから子ウィンドウ(別ウィンドウ)を開き、開いた子ウィンドウから親ウィンドウを操作したいのですが、新規のウィンドウを開いてしまいます。 XP + IE8、Vista + IE8では問題が発生しません。 以下に簡単なソースを記載します。 --- index.htm --- <HTML> <HEAD> <TITLE>フレーム</TITLE> </HEAD> <FRAMESET rows="50%,*" border="3" > <FRAME name="up" src="./parent.htm" frameborder="1"> <FRAME name="down" src="" frameborder="1"> </FRAMESET> </HTML> --- 親ウィンドウparent.htm --- <HTML> <HEAD> <TITLE>親ウィンドウ</TITLE> <script language="javascript"> <!-- function child_window(){ window.open("./child.htm" , "child"); } //--> </script> </HEAD> <BODY> 親ウィンドウ<BR> <input type="button" value="open" onclick="child_window();"> </BODY> </HTML> --- 子ウィンドウchild.htm --- <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>子ウィンドウ</TITLE> <script language="javascript"> <!-- function parent_window(){ window.open("./parent.htm" , "up"); } //--> </script> </HEAD> <BODY> 子供だよ<BR> <input type="button" value="parent_open1" onclick="parent_window();"> </BODY> </HTML>

  • 環境:WinXP+IE7+jquery1.4.2

    環境:WinXP+IE7+jquery1.4.2 次のようなコードで、メニューをクリックすると、メニューを非表示にしているのですが、画面が一瞬ちらつきます。ちらつきを無くすには、どうすればよいでしょうか? よろしくお願いします。 【コード】 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript" src="../ajax/jquery.js"></script> <script language="JavaScript"> <!-- $(document).ready( function(){ $("#menu").click(function(){ $(this).hide(300); }) } ); //--> </script> </head> <body> <div id="menu">メニュー</div> <div id="doc">コンテンツ<br/>○○○○○○○○○○○○○○○<br/></div> </body> </html>

  • ランタイムエラーのデバッグ方法について

     ホームページを開設しています。来訪者から「ランタイムエラー」 が起こると指摘がありました。色々なブラウザーで再現を試みた ところ、ie5.5で再現しました。  デバッグしますか?で「はい」を選択すると下記ソースの 23行めが構文エラーであると表示されます。  ただ、恥ずかしながらCGIのあんちょこ本を見て書いて いるので、どう直せばよいのかがわかりません。  アドバイスを頂ければ幸いです。  index.htmlのソース -------------------------------------------------------------- 1 <HTML> 2 <HEAD> 3 <title>****</title> 4 <META name="keywords" content="****"> 5 <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=x-sjis"> 6 </HEAD> 7 8 <frameset rows="88%,12%" frameborder="0"> 9 <frameset cols="300,*"> 10 11 <frame src="menu.html" name="menu" MARGINWIDTH="0"MARGINHEIGHT="0"> 12 <frame src="main0.html"name="main0"MARGINWIDTH="0"MARGINHEIGHT="0"> 13 </frameset> 14 <frameset cols=100%> 15 <FRAME SRC="ad.html" NAME="ad" MARGINWIDTH="0" MARGINHEIGHT="0"> 16 </FRAMESET> 17 </FRAMESET> 18 19 <body> 20 <noframe> フレーム対応のブラウザをご利用下さい。<br> 21 22 <SCRIPT LANGUAGE="JavaScript"> 23 <!- 24 document.write("<img src='http://hpcgi1.nifty.com/*/report.cgi?"); 25 document.write(document.referrer+"' width=1 height=1>"); 26 //--> 27 </SCRIPT> 28 29 </body> 30 </NOFRAME> 31 </HTML> -------------------------------------------------------------

  • javascriptの動的読み込みについて教えてください

    javascriptの動的読み込みについて教えてください いつもお世話になります。 jqueryを勉強中のものです。 少しややこしいのですが、 以下のmenu.htmlとmain.htmlを持ったframe.htmlで、メニューの試験ボタンを押してmain.htmlの<div id="target_id">にload.htmlを動的に読み込んだ時、loadされたhelloボタンが作動しません。 menu.htmlのtest()中のalert(data);でload.htmlの<script>が読み込まれていることは確認できるのですが・・何が原因でどこが悪いのでしょうか? よろしくご指導お願いします。 frame.html ----------------------------------------------------------- <html> <head> <title>Dynamic Load Test</title> </head> <frameset name="frame" cols="180,*"> <frame name="menu" src="menu.html"> <frame name="MainPanel" src="main.html"> </frameset> </html> ----------------------------------------------------------- menu.html ----------------------------------------------------------- <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"><!-- function test(){ jQuery.get("./load.html",function(data){ alert(data); $("#target_id",window.parent.MainPanel.document).html(data); }); } // --></script> </head> <body> <button onClick="test();">試験</button> </body> </html> ----------------------------------------------------------- main.html ----------------------------------------------------------- <html> <head> </head> <body> <h1>main.html</h1> </body> <div id="target_id"></div> </html> ----------------------------------------------------------- load.html ----------------------------------------------------------- <h1>load.html</h1> <script type="text/javascript"><!-- function hello(){ alert("こんにちわ"); } // --></script> <button onClick="hello();">hello</button> -----------------------------------------------------------

専門家に質問してみよう