javascript - 使用 Turbolinks 5 导航时 Disqus 评论显示 "Browser not supported"

标签 javascript disqus turbolinks turbolinks-5

使用 Turbolinks 5 和默认的 Disqus 评论嵌入代码时,您会收到“浏览器不受支持”错误,并在控制台中收到警告:“请使用 DISQUS.reset 而不是重新加载 embed.js。”

在 Disqus 文档中使用 AJAX 示例时,embed.js 警告消失,但“不支持浏览器”警告消失。

如何在不禁用 Turbolinks 的情况下解决此问题?

最佳答案

要解决此问题,请使用默认的 Disqus 嵌入代码:

<div id="disqus_thread"></div>
<script>

/**
*  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
*  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL;  // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://EXAMPLE.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>

并添加以下内容:

s.setAttribute('data-turbolinks-track', 'reload');

所以代码变成:

<div id="disqus_thread"></div>
<script>

/**
*  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
*  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL;  // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://EXAMPLE.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
s.setAttribute('data-turbolinks-track', 'reload');
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>

Here is the Turbolinks documentation about data-turbolinks-track="reload"

关于javascript - 使用 Turbolinks 5 导航时 Disqus 评论显示 "Browser not supported",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43407578/

相关文章:

javascript - IE8 不返回使用鼠标指针选择的文本

javascript - 动态页面的disqus api

ruby-on-rails - Rails Turbolinks长请求不显示页面加载

javascript - Rails 应用程序中的 AJAX 请求错误 : xhr. send( ( options.hasContent && options.data ) || null );

javascript - js正则表达式匹配两组定界符,可能出现多次

javascript - jQuery 在拖放后使用排序?

javascript - 客户端如何获取Disqus当前用户名?

ruby-on-rails - Disqus SSO + RAILS 设计 gem

javascript - Turbolinks:JavaScript 在 DOM 完全加载之前触发

javascript - PHP、AJAX 和 Mysql