最近开发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中调用此方法即可。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]