javascript – ExpressionEngine使用{}括号呈现JS代码

有没有办法强制表达引擎不将大括号内的项目呈现为EE代码?
google chart tools使用包含cur {}括号的javascript代码,当然EE认为它是一个变量并尝试渲染它.有什么方法吗?

解决方法

ExpressionEngine的Template Class将花括号{}解析为 template variables,寻找三种变量:单​​变量,对变量和条件变量:
// Single Variable
{summary}

// Pair Variable
{category} ... {/category}

// Conditional Variable
{if segment_2 != ""} ... {/if}

CSS中的大括号被认为是一种特殊情况.

例如,可以将以下CSS放置在模板中的任何位置,并进行智能解析:

<style>
    /* All On One Line = Okay */
    p { margin-bottom: 1em; }

    /* Indented and On Separate Lines = Also Okay */
    p em {
        font-style: italic;
    }

    /* EE Variables are Parsed and Replaced */
    p.{site_name} {
        text-decoration: none;
        }

    /* EE Code is Allowed and Parsed Appropriately */
    {exp:channel:entries channel="channel_name" limit="1"}
        li.{url_title} a {
            color: #c00;
        }
    {/exp:channel:entries}
</style>

遗憾的是,JavaScript的处理方式不同,并阻止Advanced Conditionals Parser处理标记中的任何内容.例如,以下带有花括号的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>

如果你编写了一个期望来自ExpressionEngine值的JavaScript函数,只需将你的大括号放在不同的行上 – 这是good coding convention并且是optimal for readability

<script>
    $(document).ready(function() {
        ...
            {exp:channel:entries channel="channel_name" limit="1"}
                var business_name = '{business_website}';
                var business_website = '{business_website}';
            {/exp:channel:entries}
        ...
    });
</script>

根据Ben的建议,您可以通过设置Hidden Configuration Variable来更改此行为:$conf [‘protect_javascript’] =’n’;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)