Избегать автоматического кодирования HTML FF JS? - PullRequest
2 голосов
/ 21 ноября 2011

Я пытаюсь сделать простые шаблоны для пользователей на сайте.У меня есть тестовая строка, подобная этой:

<div id="test"><a href="{url}">Test</a></div>

Он будет правильно предупреждать HTML со следующим JS во всех браузерах, кроме FF:

alert( document.getElementById( 'test' ).innerHTML );

В FF он изменит фигурные скобки на их HTML-кодированную версию.Я не хочу просто декодировать URL в случае, если пользователь вводит HTML с реальным URL вместо одного из шаблонных.Любые идеи, чтобы решить это за пределами REGEXing возвращаемого значения?

Моя скрипка здесь: http://jsfiddle.net/davestein/ppWkT/

РЕДАКТИРОВАТЬ Поскольку, по-видимому, невозможно избежать разницы в FF,и мы все еще находимся на ранней стадии разработки, мы просто собираемся перейти на использование [] вместо {}.Отметив @Quentin как правильный ответ, потому что я иду мимо,

Ответы [ 2 ]

3 голосов
/ 21 ноября 2011

Когда вы получаете innerHTML чего-то, вы получаете сериализованное представление DOM, которое будет включать любое восстановление после ошибки или замену конструкций эквивалентами, которые делает браузер.

Невозможно получить исходный источник из DOM.

0 голосов
/ 21 ноября 2011

Если ваш код не будет содержать %xx в другом месте, вы можете просто запустить его через unescape().

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