JQuery html () ошибка кодирования в Chrome - PullRequest
1 голос
/ 07 апреля 2011

Я занимаюсь разработкой веб-приложения на Java, я использовал несколько веб-служб jQuery и REST, которые выводят объект JSON со списком объектов Javascript с использованием AJAX. Все в порядке, но когда я пытаюсь заполнить таблицу, созданную с помощью Javascript, используя jQuery.html (), до действительного div, все чертовски раскололось в Chrome, включая этот

Ошибка: INVALID_STATE_ERR: исключение DOM 11

в консоли Javascript.

Проблема вот в чем, попробуйте это в консоли хрома Javascript:

$('#ValidadorWrapper').html("<div>AMOXICILIN 100 C&amp;psulapsula</div>"); 

Но если мы удалим амперсанд, он будет работать

$('#ValidadorWrapper').html("<div>AMOXICILIN 100 Camp;psulapsula</div>"); 

Эта проблема возникает только в Chrome, я подозреваю, что это связано с кодировкой символов, но я не могу найти какой-либо способ сделать это. Очевидно, мне нужно ввести & ( i mean the &amp; entity) в этом документе.

Некоторые шаги, которые я пробовал и не работали:

  1. Я использую библиотеку gson для вывода строки на страницу JSP. Моя страница JSP имеет этот заголовок <%@page pageEncoding= "UTF-8" contentType="text/html; charset=UTF-8" %>. Это была моя первая попытка, и она не сработала, когда в моем объекте JSON появился амперсанд (ну и любой специальный символ).

  2. Моя вторая попытка была использовать библиотеку Java HTMLEntities для кодирования всех специальных символов. Это актуальная версия, и она все еще не работает

  3. Использование символов Юникода, таких как \u0026, также не работает

Есть что-то более странное. Очевидно, если я использую $('#ValidadorWrapper').html("AMOXICILIN 100 \u0026");, это работает !, но это только пример. Я пытаюсь заполнить таблицу HTML своим объектом, поэтому мне действительно нужно поместить эти данные в теги html (таблица)

1 Ответ

3 голосов
/ 07 апреля 2011

Попробуйте это:

$('<div></div>').appendTo('#ValidadorWrapper').text('AMOXICILIN 100 C&aacute;psulapsula');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...