プロが教える店舗&オフィスのセキュリティ対策術

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>

A 回答 (2件)

iframeのソースを変更するなら、


iframe.location=url;
ではなく、
iframe.src=url;
ですよ。

この回答への補足

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

実際にはボタンアクションなしで選択条件に見合うURL表示を目指しています。
また試行錯誤して 質問させていただくかも知れません。 よろしくお願いします。
ヒントくださる方がいらしたら有難いです(汗)

補足日時:2012/10/07 19:03
    • good
    • 1
この回答へのお礼

出ました!
インラインフレームの中に指定のURLが・・長く苦戦していたので感動です
ありがとうございました!

お礼日時:2012/10/07 19:03

× <iframe name="s-box" src="">



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

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

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

この回答への補足

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

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

URLの表示先をインラインフレームにすることができなくて困っています。
指定方法が間違いなのか プログラム自体の構成が悪いのかもしれません。
未熟な知識ですみません 教えてください

補足日時:2012/10/06 08:30
    • good
    • 0
この回答へのお礼

nameとidの間違いご指摘ありがとうございます。
補足のような状況でまだエラーですが まずは記載ミスを訂正しました。
教えていただいてありがとうございました。

お礼日時:2012/10/06 08:30

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