我对Polymer感到非常兴奋,并开始开发一个Web应用程序。我很快就发现Firefox无法正确加载网站,请参阅此SO帖子了解详细信息:
Polymer: Layout screwed up in Firefox, fine in Chrome
然后,我在iPhone 4(iOS7)上下载了最新版本的Chrome,在iPhone 6(iOS8)上也下载了同样的东西,并尝试了这个网站。我看到的错误与我在Firefox上看到的相同(请参阅上面的链接)。
换句话说-去我的聚合物为基础的网站使用Chrome的iOS失败一样糟糕的Firefox失败。
- 所以,我想确认一下:Polymer在iOS上不起作用(在Safari中不支持,在Chrome for iOS中不支持)。对不对?
正如我在上面链接的另一个SO问题中所指出的,由于“polyfill”,我希望它能在所有浏览器中工作,但这似乎没有帮助。
我错过了什么吗?
注意:使用Android版Chrome可以正常工作,没有错误。
2条答案
按热度按时间yi0zb3m41#
正如我在另一个线程中提到的,不可能对CSS作用域进行polyfill。iOS上的Chrome实际上并不是Chrome,它是使用iOS WebView(一个旧的)构建的,这意味着没有原生的Shadow DOM和CSS范围。Shadow DOM polyfill确实正确地 Package 了像querySelector和getElementById这样的DOM API方法,所以在这方面,你确实得到了有限的封装。但是对于CSS,polyfill唯一能做的就是重命名你的选择器,所以:host .blah被重命名为x-foo .blah,并附加到头部的样式标签。这意味着你仍然需要编写防御性的CSS(就像你今天所做的那样),并避免非常松散的选择器,因为它们将被应用。
nwwlzxa72#
我今天经历了一件很奇怪的事,也许这对你有帮助。
我的firefox渲染得好像polyfills不存在一样。
所以我回到了
about:config
dom.webcomponents.enabled上的false,它又活了过来。为什么?不知道。
它起作用了,所以,如果你在firefox上有
dom.webcomponents.enabled
true
,不妨给予一试。IMHO看起来像一个polyfill bug在有能力的(但bug和支持不足)Web组件浏览器上。值得一试。