javascript - .hasOwnProperty ('getComputedStyle' ) 在 IE 11 中为 false

标签 javascript internet-explorer-11 hasownproperty

所以我在颜色选择器模块上做了一些工作,增加了解析人类可读颜色的能力。我利用 .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/

相关文章:

javascript - 正则表达式匹配——以某个字符结尾......但有一个转折

javascript - 当我们更改下拉选项时,下拉选择会挂起

javascript - 用户从 IE11 中的应用程序注销后,打开保存对话框不会关闭

javascript - "Object doesn' t support this property or method IE“Javascript 中的错误可能来自使用 hasOwnProperty?

javascript - 在 Reactjs 中使选中/未选中属性 onChange 复选框

javascript - 函数加载 jQuery 的字符结果内容无法识别?

javascript - 在 IE11 中下载文件出现错误 "' Uint8Array' is undefined”

javascript - 数组过滤器返回奇怪的结果

javascript - 循环遍历 fetch() 调用列表