多说在pjax ajax下加载的三种方法
方法一
多说官方提供的方法: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 进入文章中,多说的评论提示看不到,除非你刷新页面。(有高手的话,应该能解决)。
方法三目前没发现什么弊端,方法一我没有进行尝试,所以不做评价。