【问题标题】:Why is ColdFusion adding whitespace when I call a function in cfoutput?为什么当我在 cfoutput 中调用函数时,ColdFusion 会添加空格?
【发布时间】:2011-02-17 00:30:54
【问题描述】:

如果我在 ColdFusion 中做这样的事情:

<cfoutput>foo="#foo()#"</cfoutput>

生成的 HTML 前面有一个空格:

foo=" BAR"

但是,如果它不是函数调用,它可以正常工作,即:

<cfset fooOut=foo() />
<cfoutput>foo="#fooOut#"</cfoutput>

给出这个输出:

foo="BAR"

这个额外的空间是从哪里来的,我能做些什么吗?


编辑澄清一下,空格不在我的foo函数返回的值中:

<cffunction name="foo" access="public" returntype="string">
  <cfreturn "BAR" />
</cffunction>

但我也发现内置函数不会发生这种情况,即:

<cfoutput>"#UCase("bar")#"</cfoutput>

打印:

"BAR"

但是,如果我将函数的输出传递给内置函数,就会发生这种情况(这部分对我来说毫无意义)。即:

<cfoutput>"#UCase(foo())#"</cfoutput>

打印:

" BAR"

【问题讨论】:

  • 这绝对是一个 hack,并没有回答您的问题,但是您是否尝试过使用 Trim() 函数删除空格?
  • @dbyrne: 我试过了,但是 foo() 返回的值没有空格开头,所以 trim 什么都不做,然后 trim 的结果得到一个空格添加到它,就像 foo() 的结果

标签: coldfusion whitespace


【解决方案1】:

确保将输出属性定义为 false。

<cfcomponent output="false">

  <cffunction name="foo" access="public" returntype="string" output="false">
    <cfreturn "BAR">
  </cffunction>

</cfcomponent>

或者,用cfscript风格做,不会引入多余的空格。

function foo()
{
  return "BAR";
}

【讨论】:

  • 有谁知道为什么要添加空白字符?
【解决方案2】:
猜你喜欢
  • 2020-08-22
  • 2011-06-19
  • 2020-01-05
  • 1970-01-01
  • 1970-01-01
  • 2020-09-16
  • 2011-04-18
  • 2022-01-26
相关资源
最近更新 更多