在预置模板中,变量$js_def
应包含预定义的全局JavaScript变量addJsDef
。
然而,在输出源代码中只显示字符串js_def
,而不是带有变量定义的脚本。
附言:这是一个分享你的知识型问答;
使用$js_def
模板变量显示的定义实际上不在$js_def
变量本身中。它只包含字符串js_def
。
那么它是如何显示的呢?
通过在<head>
中自动替换js_def
字符串来显示这些定义。
可能的原因和解决方案:
原因
由于它是通过替换输出源代码来完成的-如果在输出时发生错误-则不会进行替换
即使在某些输出模板(.tpl)文件中使用了未定义的变量或索引,也可能发生这种情况,即使是footer.tpl
错误也可能导致不替换<head>
中的js_def
字符串。
解决方案
解决方案很简单——检查源代码中的任何错误并修复它们。一旦您的输出HTML源代码无错误,js_def
现在有99.99%的机会被正确替换/显示。