You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TinyButStrong模板引擎中含单引号变量致onshow条件失效的解决办法

解决TinyButStrong变量含单引号时onshow条件失效的问题

我之前也碰到过一模一样的坑!本质是当$notice里包含单引号时,直接破坏了when条件语句的字符串结构——比如如果变量值是It's a warning,解析后的条件会变成when It's a warning!='',这里的单引号提前闭合,TBS根本没法正确识别你的判断逻辑,自然就失效了。

给你两个靠谱的解决方案:

方案1:用TBS内置的isset判断(推荐)

TinyButStrong本身就提供了判断变量是否非空的简化写法,完全不用手动写!=''这种容易踩坑的逻辑,直接避开引号冲突:

<div class="notice">[onshow;block=div;isset=[var.notice;noerr]][var.notice;noerr]</div>

isset=[var.notice;noerr]会自动检查变量是否存在且不是空值(包括空字符串、null这些情况),比手动判断安全得多。

方案2:转义变量里的单引号再判断

如果你一定要保留手动判断不等于空的逻辑,可以给变量加个转义规则,把单引号转成\',确保条件语句的引号结构完整:

<div class="notice">[onshow;block=div;when [var.notice;noerr;strconv=escq]!=''][var.notice;noerr]</div>

strconv=escq是TBS专门用来转义单引号的规则,这样哪怕变量里有N个单引号,条件语句的语法也不会出错。

另外提个小建议:在输出变量到HTML的时候,最好加上strconv=html来转义特殊字符,既能避免XSS风险,也能减少各种奇怪的语法冲突哦~

内容的提问来源于stack exchange,提问作者desbest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 08:02:48