我如何编程以确定聚合物是否不起作用?

时间:2016-11-03 12:46:33

标签: web browser polymer

我们在网络应用中使用polymer。我们遇到的问题是,虽然我们知道在较旧的浏览器中Chrome 35以及之前,FF 28以及之前等等。polymer is not supported,我们是否有办法以编程方式找到任何操作系统/浏览器组合都不支持聚合物。

虽然我们根据他们对聚合物的支持为不同的浏览器版本提供不同的网站,但我们仍然收到用户反馈,指出网站没有加载。如果聚合物不加载,则用户会看到空白页。

1 个答案:

答案 0 :(得分:2)

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

webcomponentsjs上的

Issue #26谈到了这一点。他们确实注意到这种技术在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(分析)发送包含浏览器信息等详细信息的事件。