• ベストアンサー

iframeのURLを取得してinputタグの中に表示させる方法

iframeのURLを取得して inputタグの中に表示させたいのですが、どのようにしたら良いのでしょうか。 イメージとしては iframeのURLを value="" の中に代入するなどして、ブラウザ上でフォーム内情報(代入したURL)を確認できるイメージです。 ページが変わる毎にvalue値も変わって欲しいのですが。 location.href か、 document.URL あたりでできそうだと思うんですが、script初心者で中々表示するところまでプログラムが書けずつまづいております。 ご教示お願いします。

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

こんな感じで。 <p><input type="text" id="iframeUrl"></p> <p><iframe src="~~~" onload="document.getElementById('iframeUrl').value=this.contentWindow.document.location.href" ></iframe></p> ただし、Javascriptのセキュティ上の制限でiframe内が外部(別ドメイン)のページの場合はエラーになります。

gonta0012
質問者

お礼

意図したとおりに出来ました! 大変助かります。ありがとうございます。

関連するQ&A

  • value文のないInputタグ

    Inputタグの内容を送信したいのですが、 例えば、フォームF1のテキストエリアT1に、 document.F1.T1.value = "テスト"; として、JavaScript側から値(value)を指定します。 この場合、 <form method="post" name="F1"> <input type="text" name="T1"> </form> とするだけで、ブラウザに、「テスト」と表示させられますよね。 しかし、Inputタグの中に「value」の値が無いため、 他のURLに、テキストエリア「T1」の内容を送信することができません。 このようにJavaScript側から値(value)を指定したInputタグの値を送信する方法について教えてください。

  • テキストフォームのチェックについて

    テキストファームの内容チェックについて教えてください。 下記コードで取得したURLをテキストフォームに表示させ「onclick」でiframeに画面を表示させています。 これを、テキストファームが書き換わった段階で、実行することは できないでしょうか? (テキストフォーム内のURLが書き換わったら、その内容をチェック して、iframeにそのURLの画面を表示する) <html> <form name="f1"> URL:<input type="text" name="url" size="60" value="" /> <input type="button" value="このURLへ移動" onclick="target_name=***.location.href=this.form.url.value"> </form> <script type="text/javascript"> function set_latlng() { document.f1.url.value="http://***.***.****" /script> 以上、宜しくお願い致します。

  • formタグのvalue="" に代入される文字列をsubmitボタン

    formタグのvalue="" に代入される文字列をsubmitボタンが押されたときに Javascriptでlocation.hrefで現在のURLを判定して 条件分岐してformタグのvalue="" に "A" や "B" といった 文字列を代入したいと考えてます。 現在下記のタグを書いているのですが、submitボタンが押されたときに パラメータにvalueの値が代入されず、困ってます。。。 タグの記述に間違いがあると思うのですが、ご指摘いただけないでしょうか? ■現在のタグ 1.Javascript側 <script> <!-- function check() { if(location.href.startsWith('http://www.AAA.com/AAA/')){ document.exp.categoryII.value = "A"; }else if(location.href.startsWith('http://www.AAA.com/BBB/')){ document.exp.categoryII.value = "B"; } return true; } // --> </script> 2.formタグ側 <form onsubmit="return check()" name="exp" action=""> <input name="gen" value="6" type="hidden" /> <input name="categoryII" value="" type="hidden" /> <input name="button" value="検索" type="submit" /> </form> よろしくお願い致します。

  • javascriptでiframeのURL変更は?

    javascript初心者ですが、あれこれ悩みながらselect(仮にA)、radio(B)、radio(C)から取得したnameに".html"を足すことで、差し替えたいURLを形成することができました。 A,B,Cの選択を A_B_C.html という形にして それをwindow.open または locationで表示することまではできたのですが、インラインフレームの中にそのURLを表示させたりURLの差し替えをすることができません。 長い間悩みましたが解決できず困っています。 方法をご存知の方がいらっしゃいましたら、ご教授よろしくお願いいたします。 <script type="text/javascript"> <!-- //カラーの取得 function getRadio(colNo){ var col = ''; for(var i = 0; i < colNo.length; i++){ if (colNo[i].checked){ col = colNo[i].value; break; } } return col; } //柄の取得 function getGara(garaNo){ var gara = ''; for(var j = 0; j < garaNo.length; j++){ if (garaNo[j].checked){ gara = garaNo[j].value; break; } } return gara; } function show(url){ var size =document.fm.size.value; var col = document.fm.col; var gara = document.fm.gara; var src = "shohin/"; var url; var tourl = (src + size + "_" + getRadio(col) + "_" + getGara(gara)); var ifr = document.getElementById("s-box"); if(size==""||col==""||gara==""){ var url = (src+"annai.html"); } else{ var url = (tourl + ".html");} ifr.location = url; } //--> </script> -----------bodyの中-------- <form name="fm" <select name="size" <input type="radio" name="col" <input type="radio" name="gara" 中略 <iframe name="s-box" src=""></iframe> <input type="button" value="組合せを見る" onClick="show(url)" /></form>

  • tableタグの中にあるinputタグに最初から格納させる方法

    (1)index.htmlの記述の中に、たとえば <a href="form.html?/info_mail@ff5.ocn8.ne.jp">自動返信テスト</a>と書きます。 (2)このリンクをクリックしてform.htmlを表示します。 このページのtableタグの中にあるinputタグに最初から格納させる方法 をご教授いただけないでしょうか? form.htmlのソースは、 <html> <head> <title>登録</title> <script language="JavaScript"> <!-- var STR = location.href; var STR1 = STR.split("?"); if (STR1.length > 1){ var STR2 = STR1[1].split("/"); STR2.shift(); for (i in STR2){ switch ( STR2[i] ) { case "": break; case "": break; case "": break; default: break; } document.getElementById("eml").value=STR2[i]; } } //--> </script> </head> <body> <font color="#f35e3c">登録</font><br> <form action="./cgi-bin/testhogehoge2008.cgi" method="post"> アドレス<br> <input name="email" type="text" size="20" maxlength="50" id="eml" /> <input name="email" type="hidden" size="20" maxlength="50" id="eml" /><br> <input type=submit value="確認"> </form> </body> </html> です。 まったくわかりません。困っています。 よろしくお願いいたします。

  • URLの取得

    myframeという名前のiframe内に表示されているページのURLを取得するためのスクリプトです。 <SCRIPT TYPE="text/javascript"> <!-- function geturl(){ url = document.myframe.location; } --> </SCRIPT> これを実行した際に、www等のサブドメインが無いURLの場合はURLを取得出来るのですが、サブドメインがあるURLの場合URLが取得出来ませんでした。 原因が分からず困っています。 解決方法を教えていただけますでしょうか。 また、WEBサーバの設定によってはURLが取得出来ないという事はあるのでしょうか? よろしくお願いいたします。

  • iframe越しに文字をインプット

    クリックした文字をifame内のテキストボックスに入れたいのですが、うまく動きません。iframeの特殊な指定のしかたなどあるのでしょうか? よくわからないところ:「parent」はとりあえず入れてみただけ。 (^^; 【sample1.htm】 <A href="javascript:function voi(){};voi()" onclick="parent.document.fm1.Title.value='やったね'">転記</A> <IFRAME NAME="Frame1" WIDTH=800 HEIGHT=500 SRC="sample2.htm" STYLE="position:absolute;top:50px;left:5px;"></IFRAME> 【sample2.htm】 <form name="fm1"> <INPUT TYPE="TEXT" NAME="sample" SIZE="12"> <form>

  • URLの取得

    こんにちは。 JavaScriptでは、 document.URL もしくは、 document.location.href にてURLの取得が出来ますが、 ASPで取得って出来ないんでしょうか? どなたか教えてください。

  • Thickboxに表示されたページのアドレスを取得できないでしょうか?

    お世話になります 入力されたアドレスが実在するか調べたいのですがThickboxに表示されたホームページのアドレスを取得することはできないでしょうか? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <title>chosproduce.com</title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="./js/jquery.js"></script> <script type="text/javascript" src="./js/thickbox.js"></script> <link rel="stylesheet" href="./css/thickbox.css" type="text/css" media="screen"> <script type="text/javascript"><!-- function addcheck() { url = document.getElementById("add").value; document.getElementById("hide").href = url + "?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=0&width=0"; document.getElementById("push").click(); document.getElementById("er").innerHTML = ""; checkurl = (Thickboxに表示されたアドレス); if(checkurl != url) { document.getElementById("er").innerHTML = "実在しません"; } tb_remove(); } //--></script> <style type="text/css"><!-- #hide { display:none; } --></style> </head> <body> <div> <input type="text" name="add" id="add"> <input type="button" value="check" onclick="addcheck()"> <a href="" title="addcheck" class="thickbox" id="hide"> <input type="button" value="c" id="push"> </a> <div id="er"></div> </div> </body> </html> という感じにしています window.openだと(window名).location.hrefで多分取れると思うのですが開いて閉じると画面がパチッとなってしまうのでできません thickboxだとwindow名(iframe仕様になってるのでiframe名かな?)が何かお分かりになる方いらっしゃいますでしょうか?

  • URLに#を表示するには?

    初めまして。無料のCGI(掲示板)をDLして自分のHPで使用しているのですが「Res」ボタンをクリックするとスレッドの一番上に来てしまい、返信フォームが一番下にある為に使いづらいので改造を試みています。 とは言っても初心者なのでやり方自体が間違っているかもしれませんが。 返信フォーム付近に<a name=jump>タグを入力してあります、URLに「#jump」と手入力すれば思った事が出来るのですが以下のCGIにどの様に記述すれば良いのか教えてください。 print "<form action=\"$script\" method=GET>\n"; if($up_down){ print "<a href=\"#$mm[$x-1]\">▲前</a> <a href=\"#$mm[$x+1]\" class=\"ud\">▼次</a>"; $x++; } print "<input type=hidden name=mode value=new_html>\n"; print "<input type=hidden name=no value=$no>\n"; print "<input type=submit value='Res'> &nbsp; </td></form>\n"; 下から2行目の「=$no」の後に「#jump」と記述すると「#」が「%23」になってURLが出てきます。 これをURLで「#jump」と表示されるようにしたいのです。 下手くそな説明で申し訳ありませんがよろしくお願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう