所以我在颜色选择器模块上做了一些工作,增加了解析人类可读颜色的能力。我利用 .getComputedStyle()
来执行转换。
我通过以下方式实现了该功能的检测(应该是 IE 9+):
window.hasOwnProperty('getComputedStyle')
这时我注意到一些奇怪的行为。在 Chrome 和 FF 中,这与预期相符。然而,在 IE 11(确实支持它)中,它报告错误。
我有点困惑为什么会发生这种情况。我已经执行了其他方法来检查其支持。然而,我很困惑为什么 IE 确实支持它却报告错误。
不太确定这是否太过分了,但这个 fiddle 只是记录响应,以便您自己查看。 https://jsfiddle.net/xrgrgrhe/
最佳答案
不要以这种方式进行特征检测;浏览器对于原型(prototype)链上定义的某些属性和方法的位置并不总是一致的。相反,只需访问该属性即可:
if ( window.getComputedStyle ) {
/* Proceed to use window.getComputedStyle */
}
函数是真,而未定义是假。因此,如果该方法是在原型(prototype)上的任何地方定义的,而不是直接在 Window 实例对象上定义的,则该测试将通过。
无论如何,问题中的原始测试在 Microsoft Edge 中也会返回 true。
关于javascript - .hasOwnProperty ('getComputedStyle' ) 在 IE 11 中为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34857955/