Как я могу отображать теги html внутри HTML-документа?
Я просто хочу создать что-то вроде этого:
<strong>blah blah</strong>
Я пытаюсь сделать это в течение долгого времени, хотя по какой-то причине, когда я помещаю код и теги pre, они не делают то, что должны.
Они неформатируют содержимое - я не вижу никакого форматирования, хотя теги не отображаются. Например, я написал:
<pre><b>abc</b></pre>
abc появляется не жирным шрифтом, но я сам не вижу его. Как я могу это сделать?
Я не хочу использовать объекты типа & fdaf; потому что я не пишу входящий текст
Ответы
Ответ 1
Как и mkluwe, вы должны использовать JavaScript (или серверную сторону script) для правильного выхода из любого пользовательского ввода. Вот еще одна функция JavaScript, которую вы могли бы попробовать:
String.prototype.escapeHTML = function () {
return(
this.replace(/>/g,'>').
replace(/</g,'<').
replace(/"/g,'"')
);
};
var codeEl = document.getElementById('test');
if (codeEl) {
codeEl.innerHTML = codeEl.innerHTML.escapeHTML();
}
Я не тестировал это в IE, но он должен работать там теоретически. Здесь вы можете просмотреть результаты: http://jsbin.com/oruri5/2/edit
Ответ 2
Используйте тег <xmp>
.
например.
<xmp>
<html>
<body>This is my html inside html.</body>
</html>
</xmp>
Вы также можете добавить стили и форматирование внутри <xmp>
.
Ответ 3
Как насчет замены входящих текстов на <
и >
Теги должны быть видимыми в представлении источника, но не "в обычном режиме".
Ответ 4
Вы можете использовать некоторый javascript для изменения элементов на лету.
Если вы используете jQuery:
$( 'pre' ).text( $( 'pre' ).html() );
делает трюк.
Ответ 5
Самый простой способ, который я знаю, - заменить < и > с & lt; и & alpha; таким образом это не html больше. Есть несколько других кодов, подобных этим, и символы и т.д.
Откуда взялся текст? Если это в javascript, чем вам проще всего, это сделать замену регулярного выражения в javascript.
Ответ 6
Не используйте <xmp> <plaintext> и <listing> Использовать, как предложено MDN:
Use the <pre> element or, if semantically adequate, the <code> element
instead. Note that you will need to escape the '<' character as '<'
to make sure it is not interpreted as markup."
Как вы можете видеть по этой ссылке: MDN xmp
Ответ 7
Вам нужно писать такие вещи, как & fdaf; потому что браузер отказывается верить, что вы имеете в виду <pre> для всего. Это правильное поведение, иначе как вы когда-нибудь могли бы выйти из раздела <pre> ? Вы должны пройти через док и для каждого заменяющего знака меньше. Вы не должны делать это для знака большего или для амперсанда (обычно).
Ответ 8
чтобы построить ответ @mkluwe, вот пример:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
</head>
<body>
<pre>
<a href="#" onclick="location.href='http://localhost:3000/l/1/2/3'; return false;" target="_blank">
<img src="http://localhost:3000/b/1/2/3/4" target="_blank">
</a>
</pre>
<script>
$( 'pre' ).text( $( 'pre' ).html() );
</script>
</body>
</html>