Si hago algo como esto en ColdFusion:¿Por qué ColdFusion agrega espacios en blanco cuando invoco una función en cfoutput?
<cfoutput>foo="#foo()#"</cfoutput>
El código HTML resultante tiene un espacio delante de él:
foo=" BAR"
Sin embargo, si no es una función de llamada que trabaja muy bien, es decir, :
<cfset fooOut=foo() />
<cfoutput>foo="#fooOut#"</cfoutput>
da esta salida:
foo="BAR"
¿De dónde viene este espacio adicional y hay algo que pueda hacer al respecto?
Editar Para aclarar, el espacio no está en el valor devuelto por la función mi foo
:
<cffunction name="foo" access="public" returntype="string">
<cfreturn "BAR" />
</cffunction>
Pero también he encontrado que esto no sucede con las funciones incorporadas , es decir:
<cfoutput>"#UCase("bar")#"</cfoutput>
Prints:
"BAR"
Sin embargo, sucede si paso la salida de mi función a la función incorporada (esta parte no tiene sentido para mí). es decir .:
<cfoutput>"#UCase(foo())#"</cfoutput>
Lienzo:
" BAR"
Esto es definitivamente un truco y no responde su pregunta, pero ¿ha intentado utilizar la función Trim() para eliminar el espacio en blanco? – dbyrne
@dbyrne: lo intenté, pero el valor devuelto por foo() no tiene un espacio para empezar, por lo que el ajuste no hace nada, y luego el resultado de recorte obtiene un espacio agregado a él, al igual que el resultado de foo() – Kip