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

时间:2012-05-09 08:52:48

标签: java javascript-events google-calendar-api

我正在开发Google Calendar api。每当我创建任何事件并输入具有新行的事件的描述时,它会给出类似“未终止字符串常量”的错误。我将事件描述从java传递给javascript.So如何格式化具有新行的字符串?

我的代码是

 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 .

它正常工作。只有在描述有新线时才给出错误。

1 个答案:

答案 0 :(得分: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()方法。