【发布时间】:2009-12-23 18:44:54
【问题描述】:
我们刚刚发布了一个在线商店。
在此页面上,选择框会使某些计算机上的 Internet Explorer 7 崩溃。从来没有在我的电脑上。 有人知道为什么吗?
直播链接:http://velour.se/collection/women/tops/eloise
更新:事实证明,我发布的第一个喜欢并没有崩溃。
但以下是:http://velour.se/collection/women/outerwear/irina
屏幕转储:http://skitch.com/jesperlind/nc4j2/tops-eloise-velour-ie7-bug
原版:
<select id="sizeDD" onchange="javascript:SizeChange(this);"></select>
//Internet Explorer problem.
function SizeChange(e){
DrawAmountDD(GetAmountById(e.value));
}
这是我认为可能涉及的一些代码:
function DrawAmountDD(maxAmount){
/*var max = parseInt(maxAmount) > parseInt(maxShowAmount) ? maxShowAmount : maxAmount;
var html = "";
for(var i=1; i <= max; i++){
html += "<option value='" + i + "'>" + i + "</option>";
}
$("#amountDD").html(html);*/
var max = parseInt(maxAmount) > parseInt(maxShowAmount) ? maxShowAmount : maxAmount;
var ddlAmount = document.getElementById("amountDD");
ddlAmount.length=max;
for(var a=1; a <= max; a++){
ddlAmount.options[a-1].value = a;
ddlAmount.options[a-1].text = a;
}
}
版本 2:
<select id="sizeDD"></select>
<select id="amountDD"></select>
<script type="text/javascript">
var maxShowAmount = '5';
var colorSizeArr =
{ "colSize":
[
{ "color": "Black/Offwhite",
"specificId": "2",
"size": "XS",
"amount": "1" }
]
};
colorSizeArr.colSize.push(
{ "color": "Black/Offwhite",
"specificId": "13",
"size": "S",
"amount": "2" });
$(document).ready(function () {
var selectSizeDD = document.getElementById('sizeDD');
selectSizeDD.onchange = function () { sizeChange(selectSizeDD); };
});
function sizeChange(e) {
DrawAmountDD(GetAmountById(e.value));
}
function GetAmountById(specificId) {
for (var i = 0; i < colorSizeArr.colSize.length; i++) {
if (colorSizeArr.colSize[i].specificId == specificId) {
return colorSizeArr.colSize[i].amount;
}
}
return 1;
}
function DrawAmountDD(maxAmount) {
var max = parseInt(maxAmount) > parseInt(maxShowAmount) ? maxShowAmount : maxAmount;
var html = "";
for (var i = 1; i <= max; i++) {
html += "<option value='" + i + "'>" + i + "</option>";
}
$("#amountDD").html(html);
}
</script>
更新
我还没有弄清楚 Internet Explorer 7 在某些计算机上崩溃的确切原因。无论如何,上面的代码与它没有任何关系。它要简单得多。单击只有一个选项的选择框时浏览器崩溃。像这样:
<select id="amountDD">
<option value="1">1</option>
</select>
我在此链接上找到了一些信息,其中说单个选项也应该具有选定的属性,但如果没有该属性,它似乎确实会崩溃。
http://www.akselvoll.net/2007/08/ie7-crashes-when-clicking-on-drop-down.html
【问题讨论】:
-
你也可以发布“GetAmountById”功能吗?
-
另外 - 你能解释一下你所说的崩溃是什么意思吗?您的屏幕截图显示了该站点,但没有显示错误。
-
浏览器完全崩溃,但在我的机器上没有。
-
我忘记发布网址了。如果有人在触摸大小和颜色选择框时 IE7 崩溃,请告诉我。需要更多线索。你可以在这里现场试用:velour.se/collection/women/tops/eloise
-
所以除了你的机器之外,这在每台 XP 机器上都会死掉?您是否调试了 JS,为您使用的每个变量添加了警报等等?此外,正如 KevinP 所说,没有
maxShowAmount和GetAmountById的定义。最后,能否给出select里面的option标签?
标签: javascript internet-explorer-7 crash