phpBB prosilver模板添加自定义JS两种方案教程@网上用户
适用版本:phpBB 3.3.x,模板:Prosilver
方案一:直接修改 overall_footer.html(简单,升级会丢失修改)
- FTP打开目录:
styles/prosilver/template/overall_footer.html
- 用文本编辑器打开文件,找到这两行代码:
大概在 33行的地方,找到
<!-- ENDIF -->
<!-- IF U_ACP -->
- 在这两行中间插入代码:
<script src="/a/js/yj.js"></script>
- 保存文件上传覆盖原文件。
- 进入phpBB管理后台ACP:风格→模板,刷新prosilver;常规→清空缓存。
- 访问网站页面测试,F12查看页面底部是否加载脚本。
缺点:升级phpBB程序时,overall_footer.html会被原版文件覆盖,添加的代码会消失,升级后需要重新添加。
方案二:Template Events事件钩子方案(推荐,升级不丢失)
原理:不修改任何原版模板文件,利用phpBB预留的模板事件钩子,新建event目录和片段文件,系统自动注入代码。
- FTP进入目录:
styles/prosilver/template/
- 在template目录里面新建文件夹,文件夹名称小写:
event
- 进入event文件夹,新建文件,文件名严格为:
overall_footer_body_after.html
- 打开这个新建的html文件,里面只写一行代码:
<script src="/a/js/yj.js"></script>
- 保存上传。
- 【重要】回到ACP后台操作:风格→模板,找到prosilver,点击刷新;常规→清空缓存。
- 如果你之前使用方案一,请把overall_footer.html里面添加的script代码删掉,恢复原版文件,防止重复加载JS。
- 打开网站页面测试,F12查看页面底部,验证脚本注入成功。
优点:event文件夹是手动新增目录,phpBB升级包不会覆盖event目录内文件,升级程序后无需重新添加代码。
补充说明
- 钩子文件名不能写错,大小写敏感,文件名错误不会生效。
overall_footer_body_after.html:全站所有页面body结束标签前注入代码。
- 如果只需要帖子页面加载JS,event目录新建文件:
viewtopic_body_footer_before.html,内容同样放script标签。
- 调试:F12开发者工具,Elements面板拉到页面底部查看script标签;Network面板查看yj.js和yj.html请求状态。
- yj.js脚本逻辑:页面全部加载完成后异步读取yj.html,成功返回200状态码才会把内容追加到页面末尾。