JavaScript中的未终止字符串常量错误

问题描述 投票:0回答:1

我正在使用Google Calendar API。每当我创建任何事件并输入具有新行的事件描述时,都会给我类似以下错误:

“未终止的字符串常量”。

我正在将该事件描述从Java传递到Javascript。那么如何格式化具有换行符的字符串呢?

我的代码是:

 var EventDescription='<% =eventDetails.getEventDescription(eventIndex)%>'

    eventDetails -java class 
    getEventDEscription -Method to get the Description of event.
    eventIndex - no of the event whoes Description is needed .

否则它将正常工作。仅当描述有新行时才给出错误。

java google-calendar-api dom-events
1个回答
5
投票

尝试将自己想象成JSP容器,然后想象成JavaScript解释器。或者只是查看生成的HTML页面的源代码。

var EventDescription='<% =eventDetails.getEventDescription(eventIndex)%>'

由JSP容器解释。因此,将执行eventDetails.getEventDescription(eventIndex),并将此方法调用的结果放入响应中。假设结果由两行组成:

line 1
line 2

因此,生成的JavaScript代码为:

var EventDescription='line1
line 2'

这是无效的JavaScript代码。正确的JavaScript代码将是

var EventDescription='line1\nline 2'

因此,在将Java方法调用的结果放入响应之前,您需要对其进行JavaScript转义。查看Apache commons-lang StringEscapeUtils.escapeEcmaScript()方法。

© www.soinside.com 2019 - 2024. All rights reserved.