方案一
next主题开启 pjax
时 从首页跳转至文章页面输入密码后无法正常显示文章解决方案
- 编辑主题下的
_config.yml
将Jquery的CDN地址换为cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js
-
编辑
layout/script/pjax.swig
selectors: [ 'head title', '#hexo-blog-encrypt', #这里添加一行 '#page-configurations', '.content-wrap', '.post-toc-wrap', '.languages', '#pjax' ],
方案二( 推荐 )
本修改适用于
Next 8.0
及以下版本
-
编辑
next/layout/_script/pjax.njk
//添加以下代码 var dynamicLoading = { css: function(path){ if(!path || path.length === 0){ throw new Error('argument "path" is required !'); } var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.href = path; link.rel = 'stylesheet'; link.type = 'text/css'; head.appendChild(link); }, js: function(path){ if(!path || path.length === 0){ throw new Error('argument "path" is required !'); } var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.src = path; script.type = 'text/javascript'; head.appendChild(script); } }
-
在 pjax:success 方法里添加(推荐在 NexT.utils.updateSidebarPosition();后添加)
// 如果存在 博客加密 if(document.getElementById("hexo-blog-encrypt")){ //动态加载 CSS 文件 dynamicLoading.css("/css/blog-encrypt.css"); //动态加载 JS 文件 dynamicLoading.js("/lib/blog-encrypt.js"); }
共 0 条评论