我有一段相当复杂的 Javascript,它可以在 Google Chrome、Firefox、Safari 和 Opera 中完美运行,没有错误。然而,由于总是令人讨厌的情况,它在 Internet Explorer 中完全失败。我已经在 IE7 和 IE8 中测试过并且得到了同样的错误:
无效的论点。prototype.js,第 2216 行,字符 9
我正在使用通过 Google 托管的 Prototype 1.6.1。给出的错误不是很有帮助,因为它没有告诉我在我的实际代码中发生错误的位置。错误中提到的行是以下代码中倒数第 6 行:
setStyle: function(element, styles) {
element = $(element);
var elementStyle = element.style, match;
if (Object.isString(styles)) {
element.style.cssText += ';' + styles;
return styles.include('opacity') ?
element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
}
for (var property in styles)
if (property == 'opacity') element.setOpacity(styles[property]);
else
elementStyle[(property == 'float' || property == 'cssFloat') ?
(Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
property] = styles[property];
return element;
},
由于它位于 setStyle 代码块中,因此我假设在为某些元素设置样式属性时会发生错误。但是,我在这个脚本中调用 setStyle 超过 100 次,并且一直试图找出错误发生在几个小时内的确切位置。我能做些什么来帮助自己找到错误发生的位置吗?