我目前正在使用Polymer
框架和Jekyll
构建网站。我在页面底部添加了Disqus
块,它在Chrome
浏览器中运行良好。
{% if site.disqus %}
<div class="comments">
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = '{{ site.disqus }}';
var disqus_identifier = "{{ page.url }}";
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
{% endif %}
但是当我在Firefox 35.0.1
上打开它时,我在控制台中收到以下消息:
TypeError: Argument 1 of Window.getComputedStyle does not implement interface Element.
和Disqus
条评论无法加载。我在Polymer docs website上的Disqus
条评论中发现了相同的行为,因此您可以查看它。任何想法如何解决?或者这是一个错误?
答案 0 :(得分:1)
我遇到了这个问题,遇到了这个帖子:
https://github.com/webcomponents/webcomponentsjs/issues/89
Mikanoshi 在线程末尾提供了一个有用的要点,说明了修复:
var disqus_shortname = ''; /* Your shortname */
var DISQUS = ... /* From the start of DISQUS' embed.js */
(function(document) {
DISQUS.define(... /* The rest of DISQUS' embed.js */
})(wrap(document));
不幸的是我们必须修改DISQUS的embed.js,但它似乎有效!
为什么这是必要的解释在这里:http://webcomponents.org/polyfills/shadow-dom/(包装和解包)。