转载,给博客添加图片灯箱,FancyBox+Pjax踩坑记
FancyBox灯箱能够正常被激活并使用。但是,当关闭FancyBox灯箱时,页面会重载一次。
这个问题困扰了我一段时间,百思不得其解......
最终,我在Hexo的issue中找到了一个跟我有相同遭遇的人,链接在此:
With PJAX, the page will refresh once after closing the image's fancybox window
Hexo项目中使用的Pjax正是我使用的MoOx/pjax,阅读上述issue,查看Hexo作者的在Github的commit后,我知道了症结所在:需要关闭FancyBox的hash模式,以止地址栏变化。因为Pjax插件检测到地址栏变化后,误以为加载了不同的页面,于是对整个页面进行重载。Hexo的commit地址在此。
最终的解决方案:在页脚加入JS代码如下:
<script type="text/javascript">
$(document).ready(function () {
$.fancybox.defaults.hash = false;
});
</script>
原文链接:
https://blog.xmgspace.me/archives/fancybox-pjax.html