我如何以编程方式找出聚合物是否不起作用?

问题描述 投票:0回答:1

我们正在网络应用中使用polymer。我们面临的问题是,尽管我们知道在较旧的浏览器(Chrome 35和以前的版本,FF 28和之前的版本等)polymer is not supported中,是否有一种方法可以以编程方式找出是否有任何OS /浏览器组合是不支持聚合物。

尽管我们根据对聚合物的支持为不同的浏览器版本提供不同的网站,但我们仍在收到有关该网站未加载的用户反馈。如果不加载聚合物,用户将看到白页。

web browser polymer
1个回答
2
投票

我认为您的问题归结为浏览器是否支持webcomponents / polyfill。

Issue #26 on webcomponentsjs讨论了这一点。他们确实注意到,这种技术不能100%地起作用。这种方法的优势在于,它可以在Polyfill加载后立即运行。

var webComponentsSupported = (
   'registerElement' in document &&
   'import' in document.createElement('link') &&
   'content' in document.createElement('template'));

但是,更简单,更简单的方法是尝试创建自定义元素,然后稍后再查看以查看浏览器是否将其解释为自定义元素。例如:

var isRegistered = function(name) {
    return document.createElement(name).constructor !== HTMLElement;
}

如果浏览器理解自定义元素,则构造函数将不再是HTMLElement。如果您确定浏览器未加载自定义元素,则可以使用Google Analytics(分析)发送包含浏览器信息等详细信息的事件。

© www.soinside.com 2019 - 2024. All rights reserved.