Подтвердить что ты не робот

Как я могу отображать теги html внутри HTML-документа?

Я просто хочу создать что-то вроде этого:

<strong>blah blah</strong>

Я пытаюсь сделать это в течение долгого времени, хотя по какой-то причине, когда я помещаю код и теги pre, они не делают то, что должны. Они неформатируют содержимое - я не вижу никакого форматирования, хотя теги не отображаются. Например, я написал:

<pre><b>abc</b></pre>

abc появляется не жирным шрифтом, но я сам не вижу его. Как я могу это сделать? Я не хочу использовать объекты типа & fdaf; потому что я не пишу входящий текст

4b9b3361

Ответ 1

Как и mkluwe, вы должны использовать JavaScript (или серверную сторону script) для правильного выхода из любого пользовательского ввода. Вот еще одна функция JavaScript, которую вы могли бы попробовать:

String.prototype.escapeHTML = function () {                                        
  return(                                                                 
    this.replace(/>/g,'&gt;').
         replace(/</g,'&lt;').
         replace(/"/g,'&quot;')
  );
};
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

Как насчет замены входящих текстов на &lt; и &gt; Теги должны быть видимыми в представлении источника, но не "в обычном режиме".

Ответ 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 '&lt;'
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>