Как можно отображать код Javascript в виде обычного текста в теле письма в формате HTML?

У меня есть отправленное электронное письмо, в котором выводится текст ответов об ошибках HTTP. Если ответ когда-либо включает код Javascript в тегах <script> (и некоторый HTML-код), то Gmail (и многие другие почтовые клиенты) удаляют код.

Кроме того, если есть что-то после </script>, это, похоже, тоже удаляется.

Как я могу сделать так, чтобы код Javascript не удалялся, а просто включался в виде обычного текста в тело электронного письма в формате HTML?

Вы можете попробовать заменить все < на &lt;

Taplar 07.06.2019 19:21

поэтому закодируйте его как обычный текст

epascarello 07.06.2019 19:21

Доступны теги <pre> и <code>

daddygames 07.06.2019 19:22
<\script> должно быть </script>. Вот почему все, что после того, как оно было удалено, вы не завершили сценарий должным образом.
Barmar 07.06.2019 20:19

Почему вы вообще пытаетесь отправить почту в формате HTML с помощью JavaScript? Я не думаю, что какие-либо почтовые клиенты будут его выполнять.

Barmar 07.06.2019 20:20

Ответы об ошибках HTTP никогда не должны содержать теги HTML. Вы должны просто закодировать все - в PHP используйте htmlentities().

Barmar 07.06.2019 20:21

Таплар на правильном пути, но это еще не все. Не уверен, сколько еще. В stackoverflow.com/questions/7381974/… есть несколько ответов, но я не читал их полностью. Я предполагаю, что вы должны сбежать из < в &lt;, из > в &gt; и из & в &amp;. (Но сначала избегайте &, иначе он будет идти < -> &lt; -> &amp;lt;, что будет отображаться как &lt;.) Я думаю, что вы можете спокойно игнорировать, где в этой ссылке упоминаются контексты, такие как теги скрипта — их не будет. <script> теги, потому что не останется < символов.

David Knipe 07.06.2019 23:19

@Taplar Это сработало, спасибо.

Employee 20.06.2019 18:29

@Barmar Это для ответа, который я получаю от внешнего API, который я не могу контролировать. Обычно я получаю только текстовые ответы от API, но в последнее время я получаю ответы, которые начинаются с кода Javascript. Кроме того, я не пытался выполнить код, я просто хотел посмотреть, что это такое, и единственный способ узнать об этом — по электронной почте. Оказывается, это было связано с программным обеспечением New Relic Browser на сервере API.

Employee 20.06.2019 18:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
9
116
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я думаю, вы можете использовать объекты HTML

&#x3C;script&#x3E;code&#x3C;/script&#x3E;

или

&lt;script&gt;code&lt;/script&gt;

должен стать

<script>code</script>

при рендеринге

Вы можете использовать этот инструмент

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