long7181226 / compatibility-detector

Automatically exported from code.google.com/p/compatibility-detector
Apache License 2.0
0 stars 0 forks source link

modify hasLayoutInIE function in framework.js #153

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
framework.js中的hasLayoutInIE 
方法中的代码,检测是否利用zoom属性在IE触发hasLayout时不准��
�,代码如下:
var style = chrome_comp.getComputedStyle(element);
if (!chrome_comp.getSpecifiedValue(element))
        return false;
if (style.float != 'none' ||
          style.position == 'absolute' ||
          style.display == 'inline-block' ||
          parseInt(chrome_comp.getSpecifiedValue(element).width) > 0 ||
          parseInt(chrome_comp.getSpecifiedValue(element).height) > 0 ||
          style.zoom != '1')
        return true;
关键代码:
var style = chrome_comp.getComputedStyle(element);
style.zoom != '1'
使用getComputedStyle取得的是计算后的样式,所以无论是否设置z
oom:1,取出的值都是1。经测试可以使用chrome_comp.getDefinedStylePr
opertyByName(element, 
false,'zoom')方法,可以得到zoom的真实值,即若没有设置zoom属��
�,将取出null,若设置zoom值,则取出是设置的值。
备注:getDefinedStylePropertyByName方法取不到跨域引入css文件中的
样式,待解决。

Original issue reported on code.google.com by duanli...@beyondsoft.com on 8 Mar 2011 at 6:15