Обрабатывать разрывы строк от бэк-бина в JavaScript - PullRequest
3 голосов
/ 02 февраля 2012

Я пытаюсь использовать строку из моего компонента поддержки, которая может содержать разрывы строк в качестве параметра для моего метода 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 прерывается, поскольку разрыв строки завершает команду. Как я могу избежать этого?

1 Ответ

1 голос
/ 02 февраля 2012

Вы не можете обработать это в javascript, вы должны заменить разрывы строк перед тем, как печатать код.

В строках вы можете добавить обратную косую черту перед переносом строки. Но поскольку могут быть более сомнительные символы, я бы предпочел кодировать строку URL-адресом и затем декодировать ее в javascript с помощью decodeURIComponent ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...