因此,我在颜色选择器模块上做了一些工作,增加了解析人类可读颜色的能力。我利用.getComputedStyle()执行转换。

我通过以下方式实现了对功能的检测(应该是IE 9+):

window.hasOwnProperty('getComputedStyle')


这是我注意到一些奇怪的行为的时候。在Chrome和FF中,这按预期报告为true。但是,在IE 11(确实支持它)中,它报告为false。

我对为什么会这样有些困惑。我执行了其他方法来检查其支持。但是我对为什么IE支持它却报告错误的情况感到困惑。

不太确定这是否足够大,但是这个小提琴只是记录响应,以便您自己查看。 https://jsfiddle.net/xrgrgrhe/

最佳答案

不要以这种方式执行功能检测;浏览器在原型链上定义某些属性和方法的地方并不总是一致的。相反,只需访问属性:

if ( window.getComputedStyle ) {
    /* Proceed to use window.getComputedStyle */
}


函数是真实的,而undefined是虚假的。结果,如果方法是在原型的任何地方定义的,而不是直接在Window实例对象上定义的,则此测试将通过。

出于价值考虑,问题的原始测试在Microsoft Edge中也返回true。

关于javascript - IE 11中的.hasOwnProperty('getComputedStyle')false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34857955/

10-12 13:21