chrome、firefox、ie11中的基本html代码函数,但不是ie9
Basic html code functions in chrome, firefox, ie11, but NOT ie9
现在我正在开发一个基本网站,它有两个相邻的框,一个显示水果列表,另一个显示第一个框中所选水果的质量列表。
目前,我的代码在chrome、firefox和IE11中运行,但在IE9中没有。在IE9中,onchange和onload都不起作用,我收到一个错误,告诉我数组中的值不存在。
我很困惑。希望不会太久,任何人都可以看一看!关于我代码中其他缺陷的建议是值得赞赏的,但我真的很想知道为什么它不能在IE9中正常运行。
<html>
<head>
<title>LISTBOX</title>
</head>
<body onload="fruit_choice_changed(event)">
<form onchange = "change_form(event)">
<input type="radio" id="listbox" name = "form_type" value="Listbox" checked>Listbox
<input type="radio" id="dropdown" name = "form_type" value="Dropdown">Dropdown
</form>
<table>
<tr>
<td>
<select id="fruit_options" size = "5" onchange = "fruit_choice_changed(event)" selected = "Apple">
<option selected>Apple</option>
<option>Banana</option>
<option>Coconut</option>
<option>Durian</option>
<option>Eggplant</option>
<option>Fig</option>
<option>Grape</option>
</select>
</td>
<td>
<select id="fruit_display" size = "5">
</select>
</td>
</tr>
</table>
</body>
<script>
var changed = 0;
var form_type = 0;
var fruit_information = {"Apple":["Red", "Orchard", "5", "Bushel", "Delicious"], "Banana":["Yellow", "Tropical", "3"], "Coconut":["Brown", "Tropical", "7"], "Durian":["Yellow", "Tropical", "8"], "Eggplant":["Purple", "Orchard", "2", "Disgusting"], "Fig":["Brown", "Temperate", "5"], "Grape":["Purple", "Tropical", "60"]};
function fruit_choice_changed(e) {
var selected = document.getElementById("fruit_options");
var displayStr = "";
var fruit_details = fruit_information[String(selected.options[selected.selectedIndex].value)];
for (j=0;j<fruit_details.length;j++){
displayStr+="<option>"+fruit_details[j]+"</option>";
}
document.getElementById("fruit_display").innerHTML = displayStr;
}
function change_form(e){
var radioForm = document.getElementById("fruit_options");
radioForm.size = form_type%2*4+1;
form_type+=1;
}
</script>
正如您在KB276228上看到的,Microsoft Internet Explorer无法设置Select对象的innerHTML属性。
KB可能的解决方法之一是使用create选项元素,因此用下面的函数替换fruit_choice_changed
function fruit_choice_changed(e) {
var selected = document.getElementById("fruit_options");
var fruit_details = fruit_information[String(selected.options[selected.selectedIndex].value)];
for (j=0;j<fruit_details.length;j++){
var option = document.createElement('option');
option.text = fruit_details[j];
option.value = j;
document.getElementById("fruit_display").options.add(option);
}
}
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- JQuery合并了keyup和focusout两个函数
- IE9的HTML5 Canvas getImageData()函数存在问题
- JavaScript 函数在 IE9 中随机中断
- 在IE9中未检测到视图模型函数绑定,但在FF和Chrome中有效
- 使插值双三次函数在ie9中工作
- jQuery 错误 SCRIPT5002:IE9 64 位中预期的函数
- 检查IE9中javascript的小程序中是否存在Java函数
- chrome、firefox、ie11中的基本html代码函数,但不是ie9
- IE9中的函数参数错误
- JavaScript函数在IE9中无法启动
- javascript函数在ie9中没有按顺序调用
- 在IE9的html页面中访问js中的全局函数
- IE9中的this = DispHTMLWindow2在原型's函数中