多说适配pjax

最近开发3-hexo主题,由于主题使用的pjax,异步加载页面时多说会出现加载不到多说js的问题。

多说加载代码如下:

//加载多说
function loadComment() {
  duoshuoQuery = {short_name: $(".theme_duoshuo_domain").val()};
  var d = document, s = d.createElement('script');
  s.src = 'https://static.duoshuo.com/embed.js?t='+new Date().getTime();
  s.async = true; s.charset = 'UTF-8';
  (d.head || d.body).appendChild(s);
}

当局部加载页面时,就会无法加载多说。
需要编写一个js方法,参考文档:(http://dev.duoshuo.com/docs/50b344447f32d30066000147)

/**
 * pjax后需要回调函数.加载多说
 */
function pajx_loadDuodsuo(){
  if(typeof duoshuoQuery =="undefined"){
    loadComment();
  } else {
    var dus=$(".ds-thread");
    if($(dus).length==1){
      var el = document.createElement('div');
      el.setAttribute('data-thread-key',$(dus).attr("data-thread-key"));//必选参数
      el.setAttribute('data-url',$(dus).attr("data-url"));
      DUOSHUO.EmbedThread(el);
      $(dus).html(el);
    }
  }
}

在pjax:end中调用此方法即可。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

文章标题:多说适配pjax

文章字数:195

本文作者:叶落阁

发布时间:2017-03-09, 19:50:45

最后更新:2017-11-06, 10:20:12

原始链接:http://yelog.org/2017/03/09/duoshuo-pjax/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏