getComputedStyle对象包含方法?

Jus*_*ull 1 javascript methods properties object computed-style

我在这里设置了一个演示:http: //jsbin.com/evifeb/

这更像是一个大声思考而不是一个正确的问题但是......

为什么浏览器会将样式规则直接插入到计算样式对象中的旁边方法和保留字?这只是难以解析..例如,您可能会在我的演示中注意到我正在过滤掉除字符串和数字之外的所有内容.这是为了清除同一范围内的函数.虽然,这不是100%准确,因为长度属性值是一个数字.为什么没有像"getAllStyles"这样的原型函数返回没有废话的样式对象?

OKAY所以我知道"getPropertyValue",但这只有在你想要一个指定的样式规则时才有用.所以我想我想说的是:A)是否有一个正确的方法来返回这样一个交叉的对象浏览器安全?和B)如果没有,除了长度需要除草之外还有其他属性(不在css规范中)吗?

非常感谢帮忙.我已经准备好拔牙了.

Mat*_*all 6

这听起来像你的for循环需要一个健康的剂量Object.hasOwnProperty.

使用hasOwnProperty()过滤器基本上可以解决问题,但它可以解决症状,而不是原因.的原因是您的代码使用一个for...in循环遍历数组.不要这样做.

使用for...in遍历对象,并使用for遍历数组.


最后一件事:getComputedStyle()返回一个(只读)实例CSSStyleDeclaration.使用提供的API,事情很简单:

for (var i=0; i<computedStyles.length; i++)
{        
    cssProperty = computedStyles[i];
    cssValue = computedStyles.getPropertyValue(cssProperty);
    // snip...
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsbin.com/owenij/2