ちょっと変わったマニアな作品が集結

javascript初心者です。
親ウィンドウで処理してできた値をインラインフレームにある変数に代入するにはどうすればよいのでしょうか?
どなたかご教授お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

詳しくは


http://wiki.bit-hive.com/tomizoo/pg/JavaScript%2 …(iframe)%B4%D8%CF%A2
を、一度は読んでおいてもらうとして、

iframeのwindowオブジェクトは
document.getElementById(iframeのid).contentWindow
で、得られます。

iframe内の変数ってのがグローバルな変数なら
document.getElementById(iframeのid).contentWindow.変数名 = 代入したい値/変数
と、なります。
    • good
    • 0
この回答へのお礼

うまくインラインフレームに渡すことができました。
ありがとうございました。

お礼日時:2008/01/12 17:40

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QURLを引数とし、フレーム間で渡す方法

こんにちわ。
現在開発しているWEBページで、困っています。

まず、最初のページで、フレームが左右に分割しています。
左フレームAはリンクがたくさんはってあります。
右フレームBはトップロゴがあります。
右フレームBのロゴを押すと、右フレームはさらに上下に分割し、上フレームCはヘッダーとして使用し、下フレームDは詳細画面になっています。
左フレームAのリンクを押すと、下フレームDの内容が変わるのですが、フレームが4つ(A,B,C,D)に分割される前に左フレームAのリンクを押してしまうと、新しくブラウザが開かれてしまいます(Targetがないため)

そこで、URLを引数として、上下画面にフレーム分割をするソースに受け取った引数URLをフレームセットで実行できないかと考えました。

・・・がサンプルなどをひっくり返しても、なかなかできません。
どなたかご教授していただけるととても助かります。
よろしくお願いいたします。

Aベストアンサー

この方法でお気に召すでしょうか。

<!-- main.html -->
<html>
<frameset cols="20%,*">
  <frame name="A" src="a.html" />
  <frame name="B" src="b.html" />
</frameset>
</html>

<!-- a.html -->
<html>
<head>
<script language="JavaScript">
function func( ancObj ) {
  // フレームBがなければ、とりあえず無視
  if ( !parent )
    return false;
  if ( !(parent.B) )
    return false;
  // フレームBの中にフレームDがなければ、フレームBを更新。
  // その際、フレームDの移り先も合わせて送信
  if ( !(parent.B.D) ) {
    parent.B.location.href="b.html?frameD=" + ancObj.href ;
    return false;
  }
  // フレームDがあれば、ハイパーリンクでジャンプさせて良し
  return true ;
}
</script>
</head>
<body>
  <a href="http://www.yahoo.co.jp/" target="D"
    onclick="return func(this)">Yahoo!</a><br />
  <a href="http://www.google.com/" target="D"
    onclick="return func(this)">Google</a><br />
</body>
</html>

<!-- b.html -->
<html>
<body>
  <a href="b2.html">さらに分割</a>
</body>
</html>

<!-- b2.html -->
<html>
<script language="JavaScript">
function funcOnLoad( ) {
  var searchs =""; // URLのパラメータ部分
  var key = "" ; // 検索パラメータ
  var keyHead = 0; // パラメータの先頭位置
  var keyTail = 0; // パラメータ+値の終了位置
  var urlOfFrameD = "" ; // フレームDのジャンプ先
  // パラメータ文字列の取得
  searchs = location.search;
  if ( searchs.length == 0 )
    return;
  // frameDというパラメータ検索
  key = "?frameD=" ;
  keyHead = searchs.indexOf( key );
  if ( keyHead < 0 ) {
    key = "&frameD=" ;
    keyHead = searchs.indexOf( key );
    if ( keyHead < 0 )
      return ;
  }
  // 値の終了位置を検索
  keyTail = searchs.indexOf( keyHead + key.length, "&" );
  if ( keyTail < 0 ) {
    urlOfFrameD = searchs.substring(keyHead + key.length);
  } else {
    urlOfFrameD = searchs.substring(keyHead + key.length, keyTail);
  }
  if ( urlOfFrameD.length == 0 )
    return ;
  // ジャンプ
  D.location.href = urlOfFrameD ;
}
</script>
<frameset rows="20%,*" onLoad="funcOnLoad( )">
  <frame name="C" src="c.html" />
  <frame name="D" src="d.html" />
</frameset>
</html>

ちょっと長いですが、順を追うと、まず、main.htmlを表示させます。main.htmlは、フレームで左右にa.htmlとb.htmlとに分割されてます。b.htmlはリンクがあり、選ぶとb2.htmlとなり、その中で上下にc.html、d.htmlとなります。
a.htmlには、リンクがあります。今回、onclick属性をつけて置き、returnします。<a>タグでは、onclickからtrueが戻るとhrefで指定したURLにジャンプします。falseが戻るとジャンプしません。
さて、リンクを押されると、親フレームとフレームBがいるか確認します。いない場合は、今回は何もしません。
次にフレームBにフレームDがいるか確認します。いれば、trueを戻してそのままジャンプさせます。
いない場合、まず、フレームBをC、Dに分割させるため、b2.htmlにジャンプします。この際、<a>タグのhrefで指定していたURLもframeDというパラメータとして渡します。フレームAでの作業はここまでです。この際、trueを戻すと別ウィンドウが開くと思うので、何もさせないためにfalseを戻します。
 次に、C、Dと分割させられたフレームBですが、このとき、HTMLソースは、b2.htmlに切り替わります。<frameset>タグにonload属性があります。<frameset>や<body>にonload属性があると、そのhtmlの表示が完了した際に、その属性の内容が実行されます。
 onload属性内では、まず、このページを表示するためのURLにパラメータがあるか確認します。これは、(windows.)location.searchを調べれば判ります。
次にパラメータにframeDが含まれているか確認にして、あれば、その値(文字列)だけを抽出します。
抽出が終われば、フレームDのURLを変更するだけです。

内容が込み入ってますが、alert()を挟むなどして、順番に追えば、理解出来ると思います。もし、この内容で大丈夫そうと思えたら、構築するシステムに合わせてカスタマイズしてみてください。

この方法でお気に召すでしょうか。

<!-- main.html -->
<html>
<frameset cols="20%,*">
  <frame name="A" src="a.html" />
  <frame name="B" src="b.html" />
</frameset>
</html>

<!-- a.html -->
<html>
<head>
<script language="JavaScript">
function func( ancObj ) {
  // フレームBがなければ、とりあえず無視
  if ( !parent )
    return false;
  if ( !(parent.B) )
    return false;
  // フレームBの中にフレームDがなければ、フレームBを更新。...続きを読む

Qiframeのsrc属性で指定したサーブレットにパラメータを渡す方法

タブがクリックされたらiframeを使用して動的にタブのコンテンツを表示する画面をJSPで作成しています。
このとき、iframeのsrc属性で指定したサーブレットにパラメータを送りたいと思うのですがどのようにすればよいのかわかりません。
<iframe onload="sendParams()" src="..."></iframe>

次のようにFormを定義して、
<form name="testForm" action="...">
<input type = "hidden" name="A" value="XXX">
</form>

onload属性で指定したsendParams()でdocument.testForm.submit()をしてみました。ここで、iframeのsrcとformのactionには同じサーブレットのURLを指定しています。この時、タブをクリックすると、ポップアップで画面が表示されてしまいました。ポップアップではなく、タブの中に表示したいのですが、どのようにすればよいでのでしょうか?

URLパラメータとして、パラメータを送ることも考えたのですが、
URLパラメータには変数を指定できるのでしょうか?
例えば、JSP中に<c:set var="A" value="${param.A}" />
という変数設定をしていた場合、Aという変数をURLパラメータ
で送れるのでしょうか?送ってみたら、"A"という文字列が
送られていました。

上記の問題のため、GETでもPOSTでも送る方法がわかりません。
どちらでもいいので、わかる方がいたらぜひ教えてください。

タブがクリックされたらiframeを使用して動的にタブのコンテンツを表示する画面をJSPで作成しています。
このとき、iframeのsrc属性で指定したサーブレットにパラメータを送りたいと思うのですがどのようにすればよいのかわかりません。
<iframe onload="sendParams()" src="..."></iframe>

次のようにFormを定義して、
<form name="testForm" action="...">
<input type = "hidden" name="A" value="XXX">
</form>

onload属性で指定したsendParams()でdocument.testForm.submit()をしてみました。ここ...続きを読む

Aベストアンサー

なんか質問の意図がよめないので、間違ってるかもしれませんが iframe の name attribute に "view"と置いてやって。 form の target attribute を iframe の name ("view") にすればいいのではないでしょうか?そもそも src = "..." となっていますがそのような書き方は出きるのでしょうか?やったことがないので自分が知らないだけかもしれませんが、window.view.location.href = url; とするんじゃないでしょうか?

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">

Qiframe内のformをサブミットする方法について

標題の件について、いろいろ試しているのですが、iframe内のフォームをサブミットできません。わかる方いましたら教えていただけないでしょうか。以下に試しているソースを記述します。宜しくお願い致します。

○ボタン押下時、ifrのform1をサブミットさせる。

<body>
<iframe name="ifr" id="ifr" style="display:none">
<form id="form1" name="form1" id="form1" method="post" action="http://192.168...">
</form>
</iframe>
<input type="button" onclick="parent.ifr.form1.submit; " value="送信"/>
</body>

Aベストアンサー

こんにちは

???
この記述だと<iframe>内には何も入っていないですよ?
やるのであればこんな感じ?

<script language="javascript"><!--
window.onload=function() {
ifr.document.open();
ifr.document.write("<html><body>");
ifr.document.write("<form id='form1' name='form1' id='form1' method='post' action='http://192.168...' target='_top'>");
ifr.document.write("</form>");
ifr.document.write("</body></html>");
ifr.document.close();
}
//--></script>


<iframe name="ifr" id="ifr" style="display:none"></iframe>
<input type="button" onclick="parent.ifr.form1.submit(); " value="送信"/>

こんにちは

???
この記述だと<iframe>内には何も入っていないですよ?
やるのであればこんな感じ?

<script language="javascript"><!--
window.onload=function() {
ifr.document.open();
ifr.document.write("<html><body>");
ifr.document.write("<form id='form1' name='form1' id='form1' method='post' action='http://192.168...' target='_top'>");
ifr.document.write("</form>");
ifr.document.write("</body></html>");
ifr.document.close();
}
//--></script>


<iframe name...続きを読む

Q子→親ウインドウへデータを受け渡し、子ウィンドウを閉じる。

このような処理はできないでしょうか?

子ウィンドウはコード番号の検索用。該当のコードのリンクをクリックすると、そのコード番号を親ウィンドウのテキストボックスへ落とし込む。そのタイミングで、子ウィンドウは閉じる。
子→親ウインドウへのデータの受け渡しと、子ウィンドウのクローズを同時に行うようなイメージです。
よろしくお願いします。

Aベストアンサー

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<th>顧客名称</th>
</tr>
<tr>
<td><a href="javascript:ich('ABC商店')">0001</a></td>
<td>ABC商店</td>
</tr>
<tr>
<td><a href="javascript:ich('DEF商店')">0002</a></td>
<td>DEF商店</td>
</tr>
</table>

もしくはNo.1様の言うようにidを設定して
【親画面】
<input type="text" name="kokyaku_cd" size="10" id="kokyaku_cd">

【子画面 function内】
window.opener.document.getElementById("kokyaku_cd").value=n;

でできると思います

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<t...続きを読む

QHTMLファイル同士での値渡し

困っています。

HTMLファイルからHTMLファイルへ移動するときに、
HTMLファイル1でJavaScript で算出された値を
HTMLファイル2へ渡して使用したいのです。

showModalDialogだとダイアログにしか渡せないし・・・。
このように、値をそのまま次のページに渡すための方法を教えてください。
お願いします。

Aベストアンサー

すみません。うっかりしてました。

document.write(FORM[v1]);
では、v1を変数と認識してしまうので、エラーになってしまいますね。

document.write(FORM.v1);  // 「FORM.v1」です
あるいは
document.write(FORM["v1"]);
としてください。

Q