在prototype.js中没有IE显示错误。 1597

时间:2010-01-31 11:49:27

标签: php prototypejs

我使用了使用prototype.js的lightwindow,当lighwindow出现时IE显示错误,我写了问题发生的地方,请告诉我错误在哪里以及如何纠正它

setStyle: function(element, styles, camelized) {
    element = $(element);
    var elementStyle = element.style;

    for (var property in styles)
      if (property == 'opacity') element.setOpacity(styles[property])
      else
        elementStyle[(property == 'float' || property == 'cssFloat') ? // error show in this line
          (elementStyle.styleFloat === undefined ? 'cssFloat' : 'styleFloat') :
          (camelized ? property : property.camelize())] = styles[property];

    return element;
  },

2 个答案:

答案 0 :(得分:4)

prototype.js代码很可能很好,它可能是对一个不存在的元素的setStyle()调用。

如果使用Internet Explorer 8,请按 F12 打开开发人员工具。切换到“脚本”选项卡,然后找到堆栈跟踪。 堆栈跟踪会向您显示违规setStyle()来电的发生点。那可能已经给你一个提示了错了;如果没有,请回复该信息。

您可以使用Firefox和Firebug执行相同操作。

答案 1 :(得分:0)

 for (var property in styles)
      if (property == 'opacity') element.setOpacity(styles[property]);
      else /*@cc_on @*/
/*@if(@_jscript_version >= 5)
try{
@end @*/
        elementStyle[(property == 'float' || property == 'cssFloat') ?
          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
            property] = styles[property];/*@cc_on @*/
/*@if(@_jscript_version >= 5)
} catch(e){};
@end @*/