• ベストアンサー
  • すぐに回答を!

javascriptでiframeのURL変更は?

  • 質問No.7733199
  • 閲覧数1669
  • ありがとう数3
  • 回答数2

お礼率 100% (5/5)

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>

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 75% (12/16)

iframeのソースを変更するなら、
iframe.location=url;
ではなく、
iframe.src=url;
ですよ。
補足コメント
104rinsno

お礼率 100% (5/5)

iframeにボタンクリックでURL表示できました。ご回答に感謝します!

実際にはボタンアクションなしで選択条件に見合うURL表示を目指しています。
また試行錯誤して 質問させていただくかも知れません。 よろしくお願いします。
ヒントくださる方がいらしたら有難いです(汗)
投稿日時:2012/10/07 19:03
お礼コメント
104rinsno

お礼率 100% (5/5)

出ました!
インラインフレームの中に指定のURLが・・長く苦戦していたので感動です
ありがとうございました!
投稿日時:2012/10/07 19:03

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 71% (1047/1466)

他カテゴリのカテゴリマスター
× <iframe name="s-box" src="">

○ <iframe id="s-box" src="">

JavaScriptの getElementById() は「id名」でHTML要素を取得する関数。name属性は取れません。

どうしてもname属性を使う必要があるのなら、getElementsByName() の方を使ってください。その場合は取得したname属性要素は「リスト化(配列)」されて戻るので注意。
補足コメント
104rinsno

お礼率 100% (5/5)

nameとIDの間違い、ご指摘ありがとうございます。
iframeをIDに訂正しました。
残念ながらインラインフレームに何も表示されずエラーになるのですが
ifr.location = url;
の部分が間違っているのでしょうか?

location.href(url); なら、そのページがURL切り替わります。
window.open(url); なら、別windowでURL表示します。

URLの表示先をインラインフレームにすることができなくて困っています。
指定方法が間違いなのか プログラム自体の構成が悪いのかもしれません。
未熟な知識ですみません 教えてください
投稿日時:2012/10/06 08:30
お礼コメント
104rinsno

お礼率 100% (5/5)

nameとidの間違いご指摘ありがとうございます。
補足のような状況でまだエラーですが まずは記載ミスを訂正しました。
教えていただいてありがとうございました。
投稿日時:2012/10/06 08:30
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ