繁体   English   中英

getComputedStyle对象包含方法吗?

[英]getComputedStyle object contains methods?

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

我更多的是大声思考,而不是适当的问题。

为什么浏览器会沿着辅助方法和保留字将样式规则直接插入到计算的样式对象中? 这只会使解析变得很困难。例如,您可能会在演示中注意到,我正在过滤掉除字符串和数字以外的所有内容。这是为了清除相同范围内的函数。 虽然,这不是100%准确的,因为length属性值是一个数字。为什么没有像getgetStyles这样的原型函数返回没有样式的对象呢?

好的,所以我知道“ getPropertyValue”,但这仅在您需要指定的样式规则时才有用。所以我想我想说的是:A)是否有返回这种交叉对象的正确方法浏览器安全吗? 和B)如果没有,除了长度之外,是否还有其他需要清除的属性(不在CSS规范中)?

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

听起来您的for循环需要健康剂量的Object.hasOwnProperty

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...
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM