Typecho并不适合直接安装pjax。我安上这玩意后,一开始没发现什么异常,不过越用到后来越……
#0x01 评论区问题
当你利用pjax进入带有评论区的页面时,点击“回复”,页面会滚到评论区顶端的textarea上,而不是在对应的评论下新开textarea元素;而单独进入就可以正常使用。
打开F12查看错误信息,发现用pjax进入的页面点击“回复”会报错找不到TypechoComment类。经过继续研究,我发现pjax进入的页面head元素里少了js代码。
这段js代码是包含在$this->header()输出里面的,启用pjax后,我们可以在评论区的顶端(一般是主题的comments.php)加上这段代码:
<?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'); ?>这样就能加上丢失的js,正常使用评论区。
#0x02 特殊博客状态码问题
pjax库刷新时会检查状态码,如果不是2xx便会终止覆盖。而header函数在typecho主题里不起作用😫
在headers.php或index.php的<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>后加上这段代码就行
<?php
if($_SERVER["HTTP_X_PJAX"]==="true"){//如果是pjax请求
\Typecho\Response::getInstance()->setStatus(200);
}
?>
啊啊啊 我也想给博客用pjax
新年快乐🎆
新快)
大佬.这篇文章是对于你这个主题的.修复吗🤔.我是用你的主题评论发送了总是没有
是的)
还没来得及提交github放上去了,更新下就行)
来看看