IE8 Crash on getStyle background-position

血红的双手。 提交于 2019-12-08 13:43:14

问题


I've found a strange bug in Internet Explorer 8. Maybe someone can help me move around it.

When I try to grab the background position of an element, using background-position-x all versions of Internet Explorer work as excepted except for IE8 that crashes.

When I run el.getStyle('background-position') all browsers give me the correct values except from IE (6, 7 and 8) that return undefined.

I therefore use el.getStyle('background-position-x') for all IE versions.

IE8, however, crashes on the above code.

Anyone had similar problems?


回答1:


Thanks for the help everyone. This really is a bug and works only on the following scenario.

  1. css must be loaded on an external stylesheet
  2. element has no inline styling

The way to fix it, even tough dirty, is to add inline styling to the element. Makes IE8 happy and all other browsers work.

I did not test but, according to this ticket, FF2 also suffers from the same behavior.

Side notes:
@marcgg - I was going to downvote your answer as it really is not helpful (and bound to start a flame war) but, all truth said, jQuery does not manifest this problem. Even though, as you probably already knew, it is NOT an option! ;)

@Fabien - IE does support background-position-x and lacks support for background-position the W3C approved construction.




回答2:


Why not use jquery's css function that works fine crossbrowser ?




回答3:


Try using:

el.getStyle('backgroundPositionX')

and

el.getStyle('backgroundPositionX')



回答4:


yes, older thread, but figured I'd post another solution that I bumped into @ mootools lighthouse....

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

works well for me so far.



来源:https://stackoverflow.com/questions/1808119/ie8-crash-on-getstyle-background-position

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!