HTML-функция jQuery декодирует HTML-объекты - PullRequest
1 голос
/ 10 марта 2011

Есть ли способ получить HTML элемента без декодирования HTML-сущностей?

В настоящее время я использую метод jhuery .html (), но он декодирует HTML-сущности

Ответы [ 3 ]

2 голосов
/ 10 марта 2011

это не JQuery делает это, а анализатор HTML браузера. Так что ответ - нет.

1 голос
/ 01 ноября 2011

Я боролся с той же проблемой, что и при использовании редактора wyswyg, и при использовании

<texarea id="htmlsource"><p>hello html</p></textarea>

<script>
var source= $("#htmlsource").html();
alert(source);
</script>

он кодировал HTML в Hello world

не то, что я ожидаю при использовании функции .html ().Логично, что вы ожидаете, что на выходе будет HTML, а не закодированная строка для читаемого текста.

Я протестировал это в Chrome, IE9 и Firefox7 с одинаковым результатом.Чтобы это исправить, вы можете использовать функцию .text ().Сумасшедший, верно?!

<texarea id="htmlsource"><p>hello html</p></textarea>

<script>
var source= $("#htmlsource").text();
alert(source);
</script>

Так что ответ ДА, вы можете.

Обновление: Я создал полное руководство по решениям как скрипка.

0 голосов
/ 23 мая 2011

Хорошо, я думаю, у меня есть ответ на вашу проблему.

Я использовал ajax для просмотра XML-файлов и создания кода в текстовой области для копирования в HTML-файл. Не спрашивайте почему, я просто скажу, что это ограничительно. В любом случае, список ссылок должен выглядеть так:

<a href="link.html#!page=01">Something</a>

ну .html () делал так:

<a href="link.html#%21page=01">Something</a>

Это вызвало проблемы с загрузкой страницы. Я думаю, что браузер меняет% 21 =>! после загрузки страницы.

Что вам нужно сделать, это сделать переменную из того, что вы хотите .html (), следующим образом:

var prepReplaceEscape = $("#prep").html();

Затем поместите его в нужное место и используйте .replace ():

$("#output").text(prepReplaceEscape.replace(/%21/gi,"!"));

Важно иметь /% 21 / gi, это позволяет методу .replace () продолжать проходить через var. «% 21» - это то, что вы хотите заменить.

Надеюсь, это поможет. Это немного грязно, но у меня получилось.

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

...