Как распознать новую строку в атрибуте xml в Firefox? - PullRequest
1 голос
/ 11 июня 2010

Это отчасти связано с дилеммой LF / CRLF новой версии Windows против новой строки Windows.Я не люблю свое решение, но у меня есть большая часть этого выяснили ... (тем не менее, любые общие рекомендации, связанные с переходами между браузерами, приветствуются!).FF может отправлять данные из html textareas таким образом, чтобы новые строки сохранялись в БД в соответствии с IE (и моим клиентом Java).Другие клиенты могут читать эти строки, созданные в FF, с новой строки и все.

Моя основная проблема заключается в том, как правильно извлечь и отобразить строки в FF.Как определить новые строки в атрибутах xml?Например, у меня есть xhr, возвращающий набор полей формы для рендеринга через javascript:

<field name="desc" displayname="Description" value="i
am
in
ff" type="string" length="240"> </field>

(я не подтвердил, но я почти уверен, что это атрибуты CRLF в атрибуте value - так же, какЯ сохранил ранее ...) Это значение будет отображаться в текстовой области.

Но когда я пытаюсь прочитать атрибут в FF, var value = fieldNode.getAttribute ("value");Я получаю значение = "Я нахожусь в FF"

Я знаю, если я преобразую CRLF в \ n на сервере, FF будет работать;но я думаю, что это может вызвать проблемы для других наших клиентов.Я хотел бы найти клиентское и специфичное для клиента решение.

Если бы я мог обнаружить новые строки, я мог бы заменить вили что угодно.Мне просто нужен способ их обнаружить.

ps - нет ответов после более чем месяца ... почему я единственный с этой проблемой ??думаю, мне придется самому разобраться: (

Ответы [ 2 ]

2 голосов
/ 16 августа 2010

На всякий случай, если кто-нибудь еще споткнется об этом в будущем ... Этот поток помог мне выбрать правильный путь: Как сохранить переводы строк в атрибуте XML?

По ходуout, CRLF, CR и LF должны быть закодированы в надлежащем xml CRLF = & #xD; & #xA;).Я раньше не кодировал их.IE терпимо относится к этому, в то время как другие браузеры - нет.Например, XML-парсер Firefox преобразует любой символ новой строки в пробел.Теперь, когда я кодирую переводы строк, все хорошо ...

0 голосов
/ 08 сентября 2010

Я знаю, что немного опоздал, но возможно ли, что вы могли бы поместить значение атрибута в теги? Примерно так: (обратите внимание на CDATA, чтобы разрешить использовать '<' & '>' внутри тегов поля.)

<field> 
  <![CDATA[ i  <br/>
  am <br/>
  in <br/>
  ff ]]>
</field>

Вы могли бы затем использовать некоторый javascript для получения nodeValue:

<code>getElementsByTagName("field")[0].childNodes[0].nodeValue;

Обратите внимание: в XML проще не использовать атрибуты, а использовать элементы (см. здесь )

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