Hexo博客实现页面随机跳转
文章摘要
HrnAI
文章摘要初始化中...
实现页面随机跳转
介绍作者 JayHrn
生成本文简介
推荐相关文章
前往主页
看看其他文章
此内容由作者归纳总结,仅用于文章内容的解释与总结,如有不当之处,请予指正!
反馈下述文件位置主要针对Butterfly
主题,其他主题请自行修改!!!
教程
新建
[BlogSource]/themes/butterfly/scripts/helpers/inject_elements.js
文件:1
2
3
4
5
6
7
8
9
10
11hexo.extend.generator.register('random', function (locals) {
const config = hexo.config.random || {}
const posts = []
for (const post of locals.posts.data) {
if (post.random !== false) posts.push(post.path)
}
return {
path: config.path || 'random/index.html',
data: `<html><head><script>var posts=${JSON.stringify(posts)};window.open('/'+posts[Math.floor(Math.random() * posts.length)],"_self")</script></head></html>`
}
})在你想要的位置引用
/random/index.html
即可
新版教程
新建
themes/butterfly/scripts/helpers/inject_elements.js
1
2
3
4
5
6
7
8hexo.extend.filter.register('after_render:html', function (data) {
const posts = []
hexo.locals.get('posts').map(function (post) {
if (post.random !== false) posts.push(post.path)
})
data += `<script>var posts=${JSON.stringify(posts)};function toRandomPost(){ window.pjax ? pjax.loadUrl('/'+posts[Math.floor(Math.random()*posts.length)]) : window.open('/'+posts[Math.floor(Math.random()*posts.length)], "_self"); };</script>`
return data
})正常调用
toRandomPost()
函数即可。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自JayHrn
评论
匿名评论
隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果