javascript - Javascript 中的 CFML

标签 javascript coldfusion cfml

我正在处理其他人编写的代码。据我所知,它不正确,但我没有看到任何错误,所以现在我不确定自版本 8 以来是否发生了某些变化。

代码如下 & 我想知道你是否可以将 CFML 与 Javascript 代码一起使用

<script language="JavaScript" type="text/JavaScript" > 
    var x = 2;
    <cfif url.new = true>var x = 5 </cfif>
</script>

最佳答案

您不能在 JavaScript 本身中使用 CFML,因为 ColdFusion 在服务器上运行,而 JavaScript 在客户端上运行。但是,您需要考虑 CFML 的工作原理,CFML 代码在服务器上处理,然后将输出传递给客户端。因此,就您而言,您提供的示例是有效的。 CFML 将在服务器上进行处理,并生成两个输出之一并将其传递回客户端。

注意:您没有包含所有代码,因此我假设在此之前还有其他代码检查 url.new 变量是否存在。否则,如果未在 URL 中传递 new 参数,则会抛出变量不存在的错误。

如果 URL 不包含名为“new”的参数; http://www.yourdomain.com/somepage
或者"new"参数确实存在,但它的值不被认为是“真”; http://www.yourdomain.com/somepage?new=false
那么输出将是:

<script language="JavaScript" type="text/JavaScript" > 
    var x = 2;
</script>

请注意,生成的 JavaScript 中“x”的值为 2。

如果 URL 确实包含一个名为“new”的参数并且它的值被认为是“true”; http://www.yourdomain.com/somepage?new=true
那么输出将是:

<script language="JavaScript" type="text/JavaScript" > 
    var x = 2;
    var x = 5 
</script>

请注意,生成的 JavaScript 中“x”的值将为 5,但是行尾还缺少一个分号,因此您的示例可能会引发 JavaScript 错误。

请注意,我还提到了“如果值被认为是真或假”。在ColdFusion中, bool 表达式、True、非零数和字符串“Yes”、“1|”、“True”是等价的;和 False、0,字符串“No”、“0”和“False”是等价的。 bool 计算不区分大小写。例如,True、TRUE 和 true 是等价的。所以在你的例子中,http://www.yourdomain.com/somepage?new=1也会被认为是真的。

关于javascript - Javascript 中的 CFML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27785565/

相关文章:

Javascript 向 String 实例添加方法

javascript - 未捕获的语法错误 : Unexpected token < while calling cakephp select form directly in javascript

Coldfusion 计划任务 - 每次任务运行时间隔是否重置?

coldfusion - 无法启动事件网关实例 : Event Gateway Service is not enabled

date - 计算上次登录和当前日期之间的天数

javascript - 我如何使用 React-Bootstrap 的 React for Switch Buttons 在 map 中设置 onchange?

javascript - 当日期字符串顺序不同时,如何进行年龄计算输出年龄

html - cfloop 标签内的 div 标签引入了不需要的换行符

coldfusion - 对嵌套对象使用 structKeyExists

sql-server - 在 ColdFusion 中动态创建数据库和数据源