在JavaScript中使用带有换行符的ColdFusion变量

CF_*_*ger 1 javascript coldfusion

我有一个接受换行符的文本区域.该文本区域的内容保存在coldfusion变量中(让我们调用它#fieldVal#).所以,我的变量内容看起来像

textline 1
textline 2
Run Code Online (Sandbox Code Playgroud)

稍后,我在JavaScript中使用该变量

document.all.fieldName.value = "#fieldVal#";
Run Code Online (Sandbox Code Playgroud)

但是,当JavaScript点击页面时,它看起来像这样:

document.all.fieldName.value = "textline 1
textline 2";
Run Code Online (Sandbox Code Playgroud)

并且脚本中断,因为第一行不以分号结尾.

我尝试将一个JavaScript变量设置为ColdFusion文本,然后执行a replace(),但我仍然遇到了相同的问题,该行未正确结束.

我想我错过了一些明显的东西,但我只是没有看到它.谁能告诉我我在这里失踪了什么?

Bra*_*ood 13

使用JSStringFormat()函数.它旨在转义JavaScript中的元字符

转义特殊的JavaScript字符,例如单引号,双引号和换行符.

https://wikidocs.adobe.com/wiki/display/coldfusionen/JSStringFormat

document.all.fieldName.value = "#JSStringFormat( fieldVal )#";
Run Code Online (Sandbox Code Playgroud)

如果您使用的是ColdFusion 10+或Lucee Server,请使用EncodeForJavaScript().

https://wikidocs.adobe.com/wiki/display/coldfusionen/EncodeForJavaScript