Для чего использовался тег <XMP>?

Кто-нибудь помнит тег XMP?

Для чего он использовался и почему устарел?

Совершенно уверен, что он использовался для раздражающих разработчиков, пишущих парсеры html, учитывая, что это действительно (и используется Google не меньше): <xmp style = "display:none"><!-- do not remove the plaintext nor xmp tags --><plaintext/><xmp>.</xmp>

Akiva 26.07.2019 06:43
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
75
1
50 106
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

Быстрый поиск в Google по W3C показывает, что XMP был введен для отображения предварительно отформатированный текст в HTML 3.2 и ранее. Когда W3C отказался от тега XMP, он предложил использовать тег PRE в качестве предпочтительной альтернативы.

Обновление: http://www.w3.org/TR/REC-html32#xmp, http://www.w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.5.2.1

Фактически они уже были отмечены как «устаревшие» в справочнике HTML 3.0. w3.org/MarkUp/html3/html3.dtd от 1 августа 1995 года. Который, кстати, также цитирует точную причину, по которой он устарел (это был бы ответ на второй вопрос ОП).

Mr Lister 16.01.2016 12:15

pre не является альтернативой xmp цитирует весь содержащийся текст. Отлично подходит для отладки. Однако не безопасно. Работает везде AFAIK.

Tuntable 04.09.2017 09:39

На этой странице объясняется, почему <xmp> небезопасен: html5sec.org/#134

Julien 25.10.2020 03:06

@Julien Это небезопасный способ объединения вводимых пользователем данных в HTML (потому что он по-прежнему подвержен воздействию XSS), но вы все равно не должны этого делать. Afaik, использование тега в целом не является уязвимостью безопасности.

wizzwizz4 06.12.2020 16:04

По-прежнему работает, чтобы показать необработанный html - если вы используете его в скрипте, сломайте начальный тег.

var stuff='<xmp'+'>this is shown as is<br/>hello</xmp>';
document.getElementById("x").innerHTML=stuff;
<div id = "x"></div>

См. http://www.w3.org/Bugs/Public/show_bug.cgi?id=12235

Для HTML5. По словам редактора HTML5 (комментарии 11 и 12), в любом случае это был очень близкий вызов.

Я до сих пор использую тег xmp для отладки var_dump(); в PHP. По какой-то причине я просто не могу вспомнить, что использовал тег pre.

Я думаю, это не имеет особого значения, потому что, если вы действительно хотите выводить текст, вы должны использовать textarea с атрибутом readonly.

Это очень удобно для этого. Поскольку var_dump() ничего не возвращает, вам нужны функции выходного буфера для HTML-кодирования его вывода. <xmp> - это быстрая альтернатива написанию функции-оболочки, работающая везде.

Álvaro González 19.04.2013 21:49

Обратите внимание, что если в var_dump() есть какие-либо данные, вводимые пользователем, этот метод оставляет вас уязвимым для XSS-атак.

wizzwizz4 06.12.2020 16:05

XMP и PRE различаются. Содержимое тегов PRE форматируется следующим образом:

  • Контент отображается фиксированным шрифтом,
  • Все пробелы сохраняются, и
  • Каждый разрыв строки начинается с новой строки.

Если вы хотите включить специальные символы, такие как <, > и &, в теги PRE, они должны быть экранированы, чтобы они не подвергались специальной интерпретации браузером.

Напротив, содержимое тегов XMP не требует экранирования нет.

Единственная последовательность символов, которая не может быть включена в теги XMP, - это конечный тег XMP (</XMP>).

XMP по-прежнему поддерживается браузерами, которые я тестировал. Вы можете попробовать это с xmp.html. Просмотрите источник, чтобы увидеть теги.

Я представил четыре способа представления кода. Textarea кажется победителем. Вот моя оценка: dadinck.x10.mx/code_example.html

dadinck 31.05.2013 06:38

Примечание по безопасности: XMP не является - защита XSS - его единственная цель - когда вы создаете HTML-страницу статическийсамостоятельно и хотите показать некоторый код, не экранируя его ...

jave.web 30.09.2014 17:17

@dadinck, Ваша ссылка xml.html ссылается на "Учетная запись веб-хостинга, связанная с этим сайтом, временно приостановлена!" ....

Pacerier 25.05.2015 02:45

@Pacerier Извините. Это было временно. Он снова вернулся.

dadinck 06.07.2015 22:29

Вы забыли <plaintext>. Те же преимущества, что и у <xmp>, без каких-либо недостатков Помимо, что все (включая любой </plaintext>) после тега будет напечатан дословно, включая </body> и </html>.

Boldewyn 02.06.2016 16:56

@Boldewyn <plaintext> устарел, как и тег <xmp>, поэтому его использование запрещено. Наверное, лучшая альтернатива - бирка <textarea>.

Agnius Vasiliauskas 10.05.2019 11:12

XMP отлично подходит для отладки необработанного HTML.

Tuntable 29.11.2019 05:49

XMP делает некоторые вещи, которые не поддерживает PRE. Еще зависим от XMP, есть заменитель нет.

Возможно, вы могли бы объяснить, что Почему PRE не заменяет XMP. В нынешнем виде это не совсем ответ.

Anders R. Bystrup 13.12.2012 12:24

<xmp> игнорирует HTML-теги и объекты; <pre> - нет.

Álvaro González 19.04.2013 21:46

Как насчет <textarea /> в качестве замены?

James Love 05.09.2013 16:54

Как насчет использования экранирования сценария на стороне сервера? :П ................................................ ............ ‌ .................... ‌ .......... <pre><?php echo htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); ?></pre>

jave.web 30.09.2014 17:22

Попробуйте отладить вывод XML в браузере с помощью xmp, а затем pre. xmp покажет правильный результат.

Șerban Ghiță 09.12.2014 18:38

Я использовал <textarea>, который помещает html-код в аккуратное поле и четко определяет код как отличный от текста до или после.

<textarea><b>boldtext</b><textarea>

<xmp> используется с strapdown.js в нотации уценки форматирования. Имя ремень, объединяющее термины бутстрап и уценка.

<!DOCTYPE html>
<html>
  <title>Example</title>
  <xmp theme = "united">
## Example

 - note one
 - note two
 - note three
  </xmp>
  <script src = "http://strapdownjs.com/v/0.2/strapdown.js"></script>
</html>

Другие вопросы по теме