我有一个接受换行符的文本区域。该文本区域的内容保存在一个 coldfusion 变量中(我们称之为 #fieldVal#
)。所以,我的变量内容看起来像
textline 1
textline 2
稍后,我在 JavaScript 中使用该变量
document.all.fieldName.value = "#fieldVal#";
但是,当 JavaScript 到达页面时,它看起来像这样:
document.all.fieldName.value = "textline 1
textline 2";
并且脚本中断,因为第一行没有以分号结尾。
我尝试为 ColdFusion 文本设置一个 JavaScript 变量,然后执行 replace()
,但我仍然遇到同样的问题,该行未正确结束。
我想我遗漏了一些明显的东西,但我只是没有看到它。有人可以告诉我我在这里缺少什么吗?
最佳答案
使用 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
关于javascript - 在 JavaScript 中使用带换行符的 ColdFusion 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31547041/