Polymer webcomponents跨浏览器兼容性

时间:2015-01-20 02:50:50

标签: javascript html firefox polymer

我在使用Google Chrome与非Chrome浏览器(Firefox / IE)时经常出现问题。单独使用Polymer(例如查看Polymer Element演示页面)似乎不会引起任何问题。但是,当使用webcomponents时,会出现问题。在包含许多GUI和实用程序包的现有Web应用程序中包含js(jQueryUI,

该问题似乎与webcomponents.js有关。如果没有使用HTML导入并且仅导入 webcomponents.js,则会在Firefox和IE中引发相同的错误:

webcomponents.js:2114 - SyntaxError: An invalid or illegal string was specified
webcomponents.js:113 - Error: Assertion failed

webcomponents.js的具体行只是:

list = originalDocumentQuerySelectorAll.call(target, selector);

- 似乎没有立即明显的语法错误。

由于此错误,页面上的其他GUI元素现在表现出错误的行为。发生这种情况时,没有提供其他有用的控制台输出,并且没有其他JS包抛出的异常。使用Chrome时,不会显示此行为。

5 个答案:

答案 0 :(得分:3)

我有同样的错误。我解决了它,在jquery.js之前加载webcomponents.js。

答案 1 :(得分:0)

我已经在最新版本的Firefox中测试了webcomponents.js的最后一个版本,只是加载它(没有使用其他导入),它似乎工作...

Test here

Plunker here

您是否尝试使用webcomponents.js的最新版本,或者它是旧版本? Firefox的版本怎么样?

无法在IE上测试,我在linux上,抱歉。

答案 2 :(得分:0)

加载jQuery(v1.10.2)和聚合物(webcomponents.js)时遇到了同样的问题。

使用jQuery v2.1.4修复它。

答案 3 :(得分:0)

我可以通过从脚本中删除$(document).ready来解决此问题。

答案 4 :(得分:0)

不太确定这是否仍然有用,但是我最近在针对基于Polymer 1.11的应用程序使用web-component-tester运行单元测试时碰到了这一点。此问题开始出现在chrome v81上,并且之前工作正常。

因此,在每个规格文件中,我们都有一个webcomponents.min.js的导入,我将其替换为webcomponents-lite.min.js,并且对我有用。