我试图插入一些分析代码到我ExpressionEngine模板的页脚文件,但它对待{}的一个函数调用或东西。有什么办法可以让它理解EE不应该执行大括号内的内容?插入{在ExpressionEngine模板文件
我已经尝试插入反斜杠,它似乎并没有工作。
任何帮助将不胜感激。
我试图插入一些分析代码到我ExpressionEngine模板的页脚文件,但它对待{}的一个函数调用或东西。有什么办法可以让它理解EE不应该执行大括号内的内容?插入{在ExpressionEngine模板文件
我已经尝试插入反斜杠,它似乎并没有工作。
任何帮助将不胜感激。
您是否试过使用EE模板评论标签评论整个Analia代码块?即
{!--
Your comments will go in here.
You can even span it across multiple lines.
--}
从这里http://expressionengine.com/user_guide/templates/commenting.html
你在说什么?他的JavaScript代码被视为表达式引擎代码,我面临同样的问题。 – Musa 2010-12-28 17:08:42
当您使用EE的评论标签评论代码时,该模块内部没有任何内容会显示在模板中,所以这绝对不是一种好的方法。 – 2011-10-08 19:27:14
我建议你避免插入(或试图插入)生JS成HTML模板。您可以创建不同的模板,用JavaScript
类型,而不是HTML
,那么你可以用script
标签在head
添加它,或{embed="js/piece-of-raw-javascript"}
独立的分析代码放到一个单独的模板。
这可能是因为你有分析代码内的另一个EE循环,所以它试图解析它作为一个模板变量。
所以,如果你需要它在循环中,并创建一个嵌入式的模板,包括隔离的代码。
因此,创建一个名为.analytics的include。
在.analytics模板,请执行下列操作(我使用谷歌Analytics(分析)为例):
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxx-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
注意:使用此方法,保持模板作为一个正常的模板,不改变它到JavaScript模板,因为您正在模板中使用<script type="text/javascript">
标签。
然后,在你的主模板,做一个简单:
{embed="template_group/.analytics"}
你会好到哪里去。
ExpressionEngine的模板类解析花括号{}
为template variables。
因为很多编程语言使用大括号,这可以通过ExpressionEngine replacing JavaScript curly braces as Template Variables导致问题。
例如,花括号所有下面的JavaScript在一行:
<script>var addthis_config = { 'ui_click': true };</script>
将ExpressionEngine被解析为一个模板变量,并呈现为:
<script>var addthis_config = ;</script>
你注意从开头{
开始的一切,并以结束}
大括号得到解析和替换! 作为一种变通方法,您可以放置在单独的行括号和避免这个问题:
<script>
var addthis_config = {
'ui_click': true,
'data_track_clickback': true
};
</script>
如果你已经写了一个JavaScript函数,从ExpressionEngine预期值,只需将您的括号放在单独的行—这是一个good coding convention,并且是optimal for readability。
你应该全光照g hidden config varable protect javascript
$config['protect_javascript'] = 'y';
什么是您在EE中的调试偏好?它应该设置为“1”(推荐)。如果当前处于“0”,则尝试将设置值更改为“1”。在某些情况下,调试设置为“0”时可能会使用非EE字符。
您可以将调试偏好设置从 CP => Admin => System Administration => Output and Debugging => Debug Preference。
把{}括号放在单独的行也将工作,但调试设置(“1”)强烈建议,甚至可能为什么这个“错误”是不固定的。
能否请您发布您的代码页脚文件? – 2011-10-07 12:34:48
请接受某人的回答。他们花时间给你提出建议。 – 2011-10-25 13:44:05
我可以诚实地说,在我建立的所有EE网站中,我从未遇到过这个问题!我通常会将GA代码作为一个单独的HTML模板加入,并将其嵌入到其他模板中 - 也许这是要走的路? – foamcow 2012-10-25 08:52:25