Bitcron Disqus 评论插件实现点击加载

博客接入了 Disqus 评论插件,方便和读者进行交流。但 Disqus 再国内加载较慢,影响体验,于是尝试通过「点击加载」来完成。

首先,在 Bitcron 模版的 post.jade 中添加「点击加载」按钮。

div(style='text-align:center;padding: 10px;')
    button#load-disqus(onclick='disqus.load();') 评论
#disqus_thread

然后,在后台配置中,添加一段 JS 代码 ^1。为了方便起见,可以直接添加在 呈现 → 嵌入模版中。

<!-- 点击加载评论组件 -->
<script type="text/javascript">
var disqus = {
  load : function disqus(){
      var disqus_shortname = 'huhuhang';  // 修改为自己的 Disqus 名称
      if(typeof DISQUS !== 'object') {
        (function () {
        var s = document.createElement('script'); s.async = true;
        s.type = 'text/javascript';
        s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
        }());
        $('#load-disqus').remove();  // 加载后自动删除
      }
  }
}
</script>

接下来,刷新页面测试按钮是否有效。如果可以点击加载,再补充一段样式代码 ^2 到 CSS 中即可,让按钮变得更加美观。

#load-disqus {
  display: inline-block;
  padding: 0 20px;
  font-size: 14px;
  color: #656c7a;
  background: #fff;
  border: 2px solid #656c7a;
  text-decoration: none;
  border-radius: 2px;
  transition-property: background-color;
  transition-duration: 0.2s;
  transition-timing-function: ease-in-out;
  transition-delay: 0s;
  line-height: 2;
}

#load-disqus:hover {
  border-color: #656c7a;
  color: #fff;
  background: #656c7a;
}

接下来,那就可以看的如下所示的「点击加载」按钮了。👇