在 JavaScript 中使用带有换行符的 ColdFusion 变量
Using ColdFusion variable with line breaks in JavaScript
我有一个接受换行符的文本区域。该文本区域的内容保存在一个 coldfusion 变量中(我们称之为 #fieldVal#
)。所以,我的变量内容看起来像
textline 1
textline 2
稍后,我在 JavaScript
中使用该变量
document.all.fieldName.value = "#fieldVal#";
然而,当JavaScript点击页面时,它看起来像这样:
document.all.fieldName.value = "textline 1
textline 2";
脚本中断,因为第一行没有以分号结尾。
我尝试为 ColdFusion 文本设置一个 JavaScript 变量,然后执行 replace()
,但我仍然遇到同样的问题,该行未正确结束。
我想我遗漏了一些明显的东西,但我只是没有看到它。有人可以告诉我我在这里缺少什么吗?
选项 1
document.all.fieldName.value = "#Replace(trim(fieldVal), chr(10) & chr(13), ' ', 'ALL')#";
方案二(有可能这也是同样的问题。)
尝试使用 ToScript()
ToScript(fieldVal, valueVar)
Toscript 使用 coldfusion 变量值初始化一个变量,您可以像使用任何 JS 全局变量一样使用。
document.all.fieldName.value = valueVar;
选项3(如果你需要HTML形式)
使用 coldfusion 函数 ParagraphFormat()
将换行符更改为 <br/>
。
我偶然发现了一个有效的代码片段。有点...复杂,但它有效。
document.all.fieldName.value = "#Replace(Replace(URLDecode(Replace(Replace(URLEncodedFormat(fieldVal), "%0D", " ", "ALL"), "%0A", "", "ALL")),CHR(34),"", "ALL"),CHR(39),"", "ALL")#"
使用 JSStringFormat() 函数。它旨在转义 JavaScript
中的元字符
Escapes special JavaScript characters, such as single-quotation mark,
double-quotation mark, and newline.
https://wikidocs.adobe.com/wiki/display/coldfusionen/JSStringFormat
document.all.fieldName.value = "#JSStringFormat( fieldVal )#";
如果您使用的是 ColdFusion 10+ 或 Lucee Server,请使用 EncodeForJavaScript()
。
https://wikidocs.adobe.com/wiki/display/coldfusionen/EncodeForJavaScript
我有一个接受换行符的文本区域。该文本区域的内容保存在一个 coldfusion 变量中(我们称之为 #fieldVal#
)。所以,我的变量内容看起来像
textline 1
textline 2
稍后,我在 JavaScript
中使用该变量document.all.fieldName.value = "#fieldVal#";
然而,当JavaScript点击页面时,它看起来像这样:
document.all.fieldName.value = "textline 1
textline 2";
脚本中断,因为第一行没有以分号结尾。
我尝试为 ColdFusion 文本设置一个 JavaScript 变量,然后执行 replace()
,但我仍然遇到同样的问题,该行未正确结束。
我想我遗漏了一些明显的东西,但我只是没有看到它。有人可以告诉我我在这里缺少什么吗?
选项 1
document.all.fieldName.value = "#Replace(trim(fieldVal), chr(10) & chr(13), ' ', 'ALL')#";
方案二(有可能这也是同样的问题。)
尝试使用 ToScript()
ToScript(fieldVal, valueVar)
Toscript 使用 coldfusion 变量值初始化一个变量,您可以像使用任何 JS 全局变量一样使用。
document.all.fieldName.value = valueVar;
选项3(如果你需要HTML形式)
使用 coldfusion 函数 ParagraphFormat()
将换行符更改为 <br/>
。
我偶然发现了一个有效的代码片段。有点...复杂,但它有效。
document.all.fieldName.value = "#Replace(Replace(URLDecode(Replace(Replace(URLEncodedFormat(fieldVal), "%0D", " ", "ALL"), "%0A", "", "ALL")),CHR(34),"", "ALL"),CHR(39),"", "ALL")#"
使用 JSStringFormat() 函数。它旨在转义 JavaScript
中的元字符Escapes special JavaScript characters, such as single-quotation mark, double-quotation mark, and newline.
https://wikidocs.adobe.com/wiki/display/coldfusionen/JSStringFormat
document.all.fieldName.value = "#JSStringFormat( fieldVal )#";
如果您使用的是 ColdFusion 10+ 或 Lucee Server,请使用 EncodeForJavaScript()
。
https://wikidocs.adobe.com/wiki/display/coldfusionen/EncodeForJavaScript