IE8在getStyle后台位置崩溃

时间:2009-11-27 11:05:58

标签: javascript internet-explorer-8 mootools

我在Internet Explorer 8中发现了一个奇怪的错误。也许有人可以帮我转移它。

当我尝试获取元素的背景位置时,使用background-position-x除了崩溃的IE8 之外,所有版本的Internet Explorer都工作为例外。

当我运行el.getStyle('background-position')时,除了从IE(6,7和8)返回undefined之外,所有浏览器都会给我正确的值。

因此,我对所有IE版本使用el.getStyle('background-position-x')

然而,IE8在上面的代码中崩溃了。

有人有过类似的问题吗?

4 个答案:

答案 0 :(得分:2)

感谢大家的帮助。这确实是一个错误,仅适用于以下情况。

  1. css必须加载到外部样式表
  2. 元素没有内联样式
  3. 修复它的方法,即使是很难处理,也是为元素添加内联样式。让IE8开心,所有其他浏览器都能正常工作。

    我没有测试,但根据to this ticket,FF2也有同样的行为。

    旁注:
    @marcgg - 我打算回答你的答案,因为它真的没有帮助(并且必然会开始一场火焰战)但是,所有的事实说,jQuery并没有表现出这个问题。即使你可能已经知道,它也不是一个选择! ;)

    @Fabien - IE确实支持background-position-x,并且缺乏对W3C批准的background-position建设的支持。

答案 1 :(得分:0)

为什么不使用可以正常工作的jquery's css function

答案 2 :(得分:0)

尝试使用:

el.getStyle('backgroundPositionX')

el.getStyle('backgroundPositionX')

答案 3 :(得分:0)

是的,老线程,但我想发布另一个解决方案,我碰到了@ mootools灯塔......

if (Browser.Engine.trident){
    var xy = el.getStyle('background-position-x')+" "+el.getStyle('background-position-y');
} else {
    var xy = el.getStyle("backgroundPosition");
}
到目前为止,

对我来说效果很好。