getComputedStyle substitue:currentStyle(IE8 / 7)无效

时间:2015-04-05 22:43:51

标签: javascript html

我遇到了currentStyle的问题,我已经阅读了IE9之前的修复,以获得getComputedStyle支持。

我最近提出了另一个关于获取对多级导航菜单的顶级LI列表的引用的帖子:

Selecting <li> child node but not grandchildren with vanilla JavaScript

现在我需要能够在我收到的帮助下测量我无法参考的LI的宽度或高度。它有效,但不低于IE9。

以下是我尝试获取宽度的内容:

this.w = function(elm){

var s = (window.getComputedStyle) ? window.getComputedStyle(elm, "") : elm.currentStyle;

return parseInt(s.width);

}

宽度以NaN的形式回归

SCRIPT5007:无法获得属性&inner;内部HTML&#39;未定义或空引用

我非常感谢大家的帮助

1 个答案:

答案 0 :(得分:0)

elm.currentStyle.width在未指定宽度时返回"auto"

这正确反映了当前的样式设置,但没有为您提供所需的值(正如您可能期望的那样getComputedStyle)。

相反,请使用elm.clientWidth

所以在你的例子中,你可以使用......

this.w =function( elm ){
    var s = (window.getComputedStyle) ? window.getComputedStyle(elm, "") : elm.clientWidth;
    return parseInt(s.width);
}

(在IE8中测试但未在IE7中测试)