升级TBS从3.10.1到3.14.0后onload报错,如何解决?
解决TBS 3.14.0中onload指令无subname的错误提示问题
核心原因
TBS 3.14.0对onload指令的语法校验更严格,旧版本允许无subname的写法(如[onload; ...]),新版本会强制要求指定subname,但直接添加普通subname会导致指令逻辑无法触发——因为onload属于特殊系统指令,需要用特定占位格式来兼容。
具体解决方法
将原有无subname的onload指令,修改为带空占位subname的格式,两种写法均可:
- 下划线占位写法:
[onload_; block=tbs_block; ...] - 双冒号占位写法(官方推荐兼容格式):
[onload::; block=tbs_block; ...]
补充说明
这种写法既满足新版本TBS对指令必须有subname的语法校验,又不会改变原有onload指令的执行逻辑——下划线或双冒号会被TBS识别为系统指令的保留标识,不会当作普通自定义subname处理。已设置的old_subtemplate和scripts_allowed=true参数保持不变,确保子模板加载、脚本执行的原有功能正常运行。
内容的提问来源于stack exchange,提问作者Georg
相关产品推荐
相关产品推荐

