多说在pjax ajax下加载的三种方法
in 干货分享 with 0 comment

多说在pjax ajax下加载的三种方法

in 干货分享 with 0 comment

方法一

多说官方提供的方法:http://dev.duoshuo.com/docs/50b344447f32d30066000147

这里不进行说明,请进入上述链接进行查看。

效果说明:进入文章页需要点击按钮,多说评论才会加载出来。

方法二

民间高手不满足方法一那种需要按一次才能加载的方法,于是写了个不需要按按钮也能加载的方法。

在网站 head 处加入

1
2
<script>var duoshuoQuery = {short_name:"你的多说二级域名"};</script>
<script src="http://static.duoshuo.com/embed.js"></script>

方法三

也就是我现在用的方法,这个方法需要模板加载 jquery, 在 pjax 重载函数中加入下述代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
$(document).on('pjax:complete', function() {
    pajx_loadDuodsuo();//pjax加载完成之后调用重载多说函数
});
function pajx_loadDuodsuo(){
    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);
    }
}
</script>

以上三种方法,孰优孰劣,请自行判断,以前我是用第二种方法的,后来发现了第三种方法,发现代码量少了不少(因为加载了 jq),于是就用了第三种方法。

方法二有个弊端:就是通过 pjax 进入文章中,多说的评论提示看不到,除非你刷新页面。(有高手的话,应该能解决)。

方法三目前没发现什么弊端,方法一我没有进行尝试,所以不做评价。


转载自https://qqdie.com/archives/pjax-duoshuo.html

Responses