引入pjax后,由于只是局部刷新,导致支撑评论回复框定位的对象没有被重新加载,从而引起无法将评论框定位到回复区的现象(但是强制刷新一下页面, 又会恢复正常)。虽然不影响使用,但追求完美是人的天性。

搜索了很多资料,大多是对多说(外挂)的支持,且内容同质化,多为转载,操作复制且有代码不完整的可能,无法解决原生评论的问题。

引起这个问题的原因是: window.TypechoComment对象是typecho在head标签里调用$this->header()方法为我们生成的,Pjax加载后window.TypechoComment没有被重新载入进来,且window.TypechoComment里的respondId 没有被重新生成。

解决办法:在Pjax的替换#pjax-container时, 重新载入window.TypechoComment对象,将下面代码加入(post.php&page.php)页面容器(<div id="pjax-container"> </div>)内刷新时重载对象。

 <!--commentReply=1 表示仅输出 window.TypechoComment 对象-->
    <?php $this->header('commentReply=1&description=0&keywords=0&generator=0&template=0&pingback=0&xmlrpc=0&wlw=0&rss2=0&rss1=0&antiSpam=0&atom'); ?>

标签: 代码, PJAX, 评论重载, typecho

  

仅有一条评论

  1. abc abc

    沙发🛋️

添加新评论

歌曲封面
0:00