我在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在上面的代码中崩溃了。

有人有过类似的问题吗?

有帮助吗?

解决方案

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

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

    我没有测试,但根据这个票证,FF2也有同样的行为。

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

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

其他提示

为什么不使用可以正常工作的 jquery的css功能

尝试使用:

el.getStyle('backgroundPositionX')

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

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

对我来说效果很好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top