typecho引入pjax后评论回复框问题
引入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'); ?>
沙发🛋️