IE 11似乎降低了.options的限制[]- firefox工作正常- IE <11工作正常
IE 11 seems to have a lowered limit on .options[] - firefox works fine - IE <11 works fine
function fillarray(arrname) {
var list1 = document.FORM1.MASTERLIST;
var list2 = document.getElementById(arrname);
var rmax = list2.options.length;
var lmax = list1.options.length;
var partc = "";
if (rmax != 0) {var setname = list2.options[list2.selectedIndex].text;}
for (var loop1 = 0 ; loop1 < lmax ; loop1=loop1+1) {
partc = list1.options[loop1].text;
list2.options[loop1]=new Option( partc , partc );
}
if ((rmax != 0) && (setname != "")) {
var si = inlist(list2,setname);
list2.options[si-1].selected = true;
}
return;
}
我的问题似乎是在行"for (var loop1 = 0...."
通过测试,我发现2995是我可以使用的最高环路。在上面,我的SELECT选项中没有任何元素。
我预定义了一个选项的主列表-当每个特定的下拉列表被选中时,我将主列表复制到该列表中-所以我不必在加载时为每个列表定义大量的选项。
一切都很好,直到W7升级到IE11 -旧版本的IE工作没有问题。我没有在W7以外的其他操作系统平台上测试过,所以我不知道它是否特定于W7上的IE11
是否有一个上限或上限的总大小限制有多少选项[]可以在IE11的列表?或有没有一个bug,其他人已经注意到这个发生了?
我刚刚做了一个额外的测试,通过限制每个选项描述的大小为5个字符,以及加载的选项的全部数量-所以它不是对数量的限制-它必须是总长度。
现在-大约有4500个条目,每个值和描述大约25字节,所以大约225k -我似乎在总长度约150k时遇到了问题。
补充:这个问题似乎也存在于Edge和IE 11中,似乎与onfocus和onblue事件触发有关。似乎onfocus触发了onblur,这是没有意义的,因为在focus例程中没有。focus,或者任何一旦有人点击就会带走焦点的东西。当你点击时,它需要5-10秒来运行,就像在运行一个很长的脚本,它在焦点和蓝色函数之间来回弹跳。非常奇怪。我的事件都是内联的,我可能会尝试改变这一点,使用JQuery添加事件一旦页面加载。
补充道:好的,经过大量的调试,我找到了问题发生的地方。在"list2。options[loop1]=new Option(partc, partc);'"在OnFocus运行的函数中,导致OnBlur事件触发。似乎只会在IE11和Edge中出现。现在我必须弄清楚我是否可以禁用onBlur事件,直到我加载数组之后,然后重新启用它。
谢谢
这是一个评论不是一个答案,但是答案部分允许张贴代码,所以我使用它代替。
以下内容适用于ie5之前的所有版本,但在IE9之前这些选项不能正确显示。您的问题可能是数据源没有完全加载。
var sel = document.getElementById('sel0');
var base = 'This option has a long value to test things ';
for (var i=0; i<5000; i++) {
sel.appendChild(new Option(base + i, base + i));
}
<form>
<select id="sel0" onchange="console.log(this.value)">
<option value="first">first</option>
</select>
<input type="reset">
</form>
- 为什么这在IE中的工作方式与在Firefox中不同
- 点击选择Div不在IE上工作
- 如何编写在Chrome和IE中正常工作的JavaScript
- Target=_blank don'我不在mozilla和IE工作
- 如何隐藏空<span>在IE中使用javascript.(注意,在其他浏览器中工作正常)
- 读取在具有IE的工作程序中生成的对象URL
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- jQUery Code没有'我不在IE工作
- 为什么这个书签脚本是't在IE工作
- 类构造函数super()没有'我不在IE工作
- JavaScript onclick在IE 9中工作两次,然后停止
- HTML5视频无法在chrome上工作,在服务器上托管后的IE,mov文件中的视频(quicktime格式)
- JSSOR转盘滑块在IE中不工作
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- onmousemove=null不会'我不在IE工作
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- execCommand('另存为',true,'data.csv');不在IE工作
- 我的剧本赢了'不能在IE中工作(甚至9)?修改复制文本的简单javascript
- 纯Javascript: onClick切换行/图像:Firefox/Chrome -工作:IE -不工作
- jQuery菜单不工作ie(文档模式:怪癖)