我正在尝试使用我的支持bean中的字符串,该字符串可能包含换行符作为我的JavaScript方法的参数:
来自xhtml的片段:
<a4j:commandLink id="showEntry"
immediate="true"
styleClass="smallSpaceLeft"
action="#{bean1.method()}"
onclick="jsMethod('#{entry.text}')"
value="#{messages['general.click']}" />
一切正常,但字符串包含任何换行符。 例如:#{entry.text} =“第一行。\ n第二行。”
html输出如下:
<a class="smallSpaceLeft" href="#" id="j_id279:0:showEntry"
name="j_id279:0:showEntry" onclick="jsMethod('First line.
Second line.');A4J.AJAX.Submit('j_id272',event,
{'similarityGroupingId':'j_id279:0:showEntry','parameters':
{'j_id279:0:showEntry':'j_id279:0:showEntry'} } );return false;">Click me</a>
因此,当换行符结束命令时,JavaScript就会被破坏。我怎么能避免这个?
答案 0 :(得分:1)
您无法在javascript中处理它,您必须在打印代码之前替换换行符。
在字符串中,您可以在换行符之前添加反斜杠。但由于可能有更多有问题的字符,我更喜欢对字符串进行URL编码,然后使用decodeURIComponent()在javascript中对其进行解码。