javascript – 检测浏览器功能支持最可靠的方法是什么?

前端之家收集整理的这篇文章主要介绍了javascript – 检测浏览器功能支持最可靠的方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我想在 JavaScript库中检测到通知( http://notifications.spec.whatwg.org/)的支持.

我可以使用window.Notification!== undefined.但是如果库(或另一个库)的用户也具有为完全不同的目的定义的某种全局通知对象呢?

另一方面,如果另一个图书馆是一个polyfill?然后他们的Notification对象是可以接受的.我应该测试除了测试全局对象之外的所有方法吗?

更新:
我在notifications polyfill年注意到了一件有趣的事情:

ret[toString] = function() {
    return 'function Notification() { [native code] }';
};

依靠这样的东西来检测它是否是本机/ polyfill对象的可靠性?

解决方法

所以基本上有两个选择.

首先是尝试依靠’function Notification(){[native code]}’toString的值,因为它至少被一些polyfill设置.不幸的是,这不可靠,因为我发现没有关于它是否是polyfill作者中的常见方法的信息,以及它是否是浏览器中可靠的返回值.

另一种选择,正如意见中所提出的那样,是忽略潜在的冲突,只是为了存在而进行测试.这就是我现在所去的.

原文链接:https://www.f2er.com/js/154175.html

猜你在找的JavaScript相关文章