2015-02-15 2 views
1

В настоящее время я создаю сайт с использованием Polymer рамки и Jekyll. Я добавил блок Disqus в нижней части страницы, и он отлично работает в браузере Chrome.Полимер и Disqus на Firefox: аргумент 1 из Window.getComputedStyle не реализует интерфейс Элемент

{% 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 комментарии не загружаются. Я нашел то же поведение для Disqus комментариев на Polymer docs website, так что вы можете проверить его. Любые идеи, как это можно исправить? Или это ошибка?

ответ

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/ (под оберткой и распаковкой).

+0

Странно, но кажется, что это единственный способ заставить его работать на FF, спасибо! –