※ ChatGPTを利用し、要約された質問です(原文:Stack overflow line at:0のエラーについて)
Stack overflow line at:0のエラーについて
このQ&Aのポイント
連動プルダウンを使用したJavascriptでエラーが発生しています。
エラーの原因はPCの問題ではなく構文のエラーとされています。
20個のプルダウンのうち最初の4個を選択すると必ずStack overflowのエラーが発生します。
Stack overflow line at:0のエラーについて
はじめまして。
先日も質問させていただき、見事に解決できたのでまた質問させていただきます。
タイトルにもあるのですが、連動プルダウンを使用したJavascriptでエラーが出てしまいます。ネットでも色々と調べ呼び出しのメモリが不足している、キャッシュが多いなど載っていましたが、どうもPCそのものの問題ではないようです。
それ以外では構文のエラーということだったのでフリーソフトのエラーチェックを行ったのですが、特に問題はなかったです。
プルダウンは全部で20個あり初めの4個は選択後に次のプルダウンに移行すると必ずStack overflowのエラーがでます。
不躾な質問で申し訳ないですが、何か問題があるのかご教授いただけないでしょうか?
よろしくお願いします。
以下は構文になります。
<html>
<head>
<title>テンプレtest</title>
<script type="text/javascript"src="ConnectedSelect.js"></script>
<script>
function Jump(f){
for(var i=0;i<f.length;i++){
if(f[i].type=="select-one" && f[i].value.match(/\.html?$/)){
window.open(f[i].value,'_blank');
break;
}
}
}
</script>
</head>
<body>
<form>
項目1<select name="SEL1">
<option value="">-----------</option>
<option value="aa">aa</option>
</select>
項目2<select name="SEL2">
<option value="">-----------</option>
<optgroup label="aa">
<option value="aa1">aa1</option>
<option value="aa2">aa2</option>
<option value="bb1">bb1</option>
</optgroup></select>
・
・
・
・
項目20<select name="SEL20">
<option value="">-----------</option>
<optgroup label="zz">
<option value="zz1">zz1</option>
<option value="zz2">zz2</option>
<option value="***.html">***</option>
</optgroup></select>
<input type="button" value="Go" onClick="Jump(this.form)">
<script type="text/javascript">ConnectedSelect
(['SEL1','SEL2','SEL3','SEL4','SEL5','SEL6','SEL7','SEL8','SEL9','SEL10','SEL11','SEL12','SEL13','SEL14','SEL15','SEL16','SEL17','SEL18','SEL19','SEL20']);
</script>
</form>
</center>
</body>
</html>
お礼
いつもお世話になっております。 ご返答ありがとうございます。 回答もなかなかなかったので調べてみたのですが、 Stack Overflowのエラーが出るだけで反映はSEL20まで可能となります。 ただし、SEL1~SEL4まではプルダウンの項目を一つ選択する度にエラーが出てしまう状況です。 ネットなどで調べると構文エラーの他にループ処理が行われているため というものもありました。 ConnectedSelect.jsの構文も参考に記載致します。 function ConnectedSelect(selIdList){ for(var i=0;selIdList[i];i++) { var CS = new Object(); var obj = document.getElementById(selIdList[i]); if(i){ CS.node=document.createElement('select'); var GR = obj.getElementsByTagName('optgroup'); while(GR[0]) { CS.node.appendChild(GR[0].cloneNode(true)); obj.removeChild(GR[0]); } obj.disabled = true; } if(selIdList[i+1]) { CS.nextSelect = document.getElementById(selIdList[i+1]); obj.onchange = function(){ConnectedSelectEnabledSelect(this)}; } else { CS.nextSelect = false; } obj.ConnectedSelect = CS; } } function ConnectedSelectEnabledSelect(oSel){ var oVal = oSel.options[oSel.selectedIndex].value; if(oVal) { while(oSel.ConnectedSelect.nextSelect.options[1])oSel.ConnectedSelect.nextSelect.remove(1); var eF = false; for(var OG=oSel.ConnectedSelect.nextSelect.ConnectedSelect.node.firstChild;OG;OG=OG.nextSibling) { if(OG.label == oVal) { eF = true; for(var OP=OG.firstChild;OP;OP=OP.nextSibling) oSel.ConnectedSelect.nextSelect.appendChild(OP.cloneNode(true)); break; } } oSel.ConnectedSelect.nextSelect.disabled = !eF; } else { oSel.ConnectedSelect.nextSelect.selectedIndex = 0; oSel.ConnectedSelect.nextSelect.disabled = true; } if(oSel.ConnectedSelect.nextSelect.onchange)oSel.ConnectedSelect.nextSelect.onchange(); }