记我在制作PureLoveForTypecho主题时, 使用
Pjax
遇到的一些问题
Pjax用法
引入类库后 在主题footer.php
里添加以下代码即可
$(document).pjax('a[href^="<?php Helper::options()->siteUrl()?>"]:not(a[target="_blank"], a[no-pjax])', {
container: '#pjax-container',
fragment: '#pjax-container',
timeout: 8000,
});
记坑
1.发现Pjax
版本需要与Jquery
版本保持某个契合度: 大概是pjax 1.9.x版本应配合jq 2.x版本; pjax2.0.x以上的版本 使用jq 3.x 才能使用, 否则bug bug~
2.标签要闭合: 如果页面上html
标签没有写完整, 也会导致pjax
无法生效 如<body>
没有闭合
3.pjax
完成后需要重载其他类库, 如代码高亮
4.评论区错误: 点击回复按钮JS报错后, 无法将评论框定位到回复区(但是刷新一下页面, 就会恢复正常)
Uncaught ReferenceError: TypechoComment is not defined at HTMLAnchorElement.onclick
引起这个原因是: window.TypechoComment
对象是typecho
在head
标签里调用$this->header()
方法为我们生成的, Pjax加载后window.TypechoComment
没有被重新载入进来. 且window.TypechoComment
里的respondId
没有被重新生成.
解决方案:
在Pjax
的替换#pjax-container
时, 重新载入window.TypechoComment
对象:
<div id="pjax-container">
<!--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'); ?>
</div>
5.听说要关闭反垃圾保护, 这个我没有验证过.
解决方法非常好用,感谢感谢!
非常感谢啊,没想到4年前的文章能帮到我,官方文档简直就是一坨
官方文档还误导人,坑死我了
很高兴能帮到你😁
测试评论功能😀
有用,找了半天这个东西,插眼,以后说不定还能再来
😀常来 常来
自己写了个主题,今天尝试加Pjax,用的也是JQuery Pjax,先是原本用JQuery控制的点击效果挂了,换成js函数解决了,然后发现评论也挂了,关了反垃圾保护就好了,但提交评论和搜索会整页重新加载😂
搜索实现
Pajx
可以参考我写的代码😁,评论我没有做Pjax
效果大佬,问一下就是该主题使用Pjax是还要改你的到层代码的嘛,用的一个插件刷新不了就是切换页面就失效了,😬
不用修改任何配置就可以使用Pjax。看看控制台有没有报错信息
没有。就是问一下大佬,我安了个播放的按纽,然后我看了下footer.php,正常情况应该是我点开文章内容页,然后不中断,或者进入其他页面不中断,我是需要改哪里吗,恳请麻烦大佬指点一下😬
加我QQ或微信
你可以尝试在
js/purelove.js
的pjaxComplete()
方法内调用你播放的方法调用了我的播放和停止的方法,但是还是只有点击回到首页不会中断,点击分类或者进入其他文章页面都是会中断。。🙃晕了,
大佬,那个归档的时间轴怎么实现的,是插件吗?
实现归档页面很简单,请参考:
https://gitee.com/HoeXhe/PureLoveForTypecho/wikis/%E5%A6%82%E4%BD%95%E6%98%BE%E7%A4%BA%E5%BD%92%E6%A1%A3%E9%A1%B5%E9%9D%A2
写的啥呀看不明白😂
不太喜欢用Pjax,感觉这个玩意儿得专业人才整得完美,不然总觉得怪怪的。
Pjax可以让用户体验变得更友好
https://qqdie.com/archives/typecho-recovery-visible-ok.html
博主这个希望 可以添加进新版
不过 大佬可以先告诉我ajax.php添加什么吗
抱歉, 我没明白你的意思
就是这个回复可见 希望可以添加到下一个版本
还有就是他们说ajax不加载这个的话
就在pjax中重新加载这个$( ".class的名字").fancybox();
大佬的模板应该在ajax里添加什么代码
回复可见我没有研究过, 不知道怎么实现
你的背影非常赞!
pjaxComplete()是Pjax完成后执行的方法😀
好吧 虽然没明白什么意思
我就是想问下博主的模板怎么实现回复可见
还有我觉得我找的这个背景比较好看
适合这个模板 博主觉得怎么样