Как отобразить html почту в браузере, не меняя цвета bg и не меняя таблицу - PullRequest
4 голосов
/ 20 октября 2010

В новом приложении, которое я создаю, я хочу отобразить HTML-сообщение в виде таблицы в браузере.

Проблема в том, что электронные письма html меняют цвет фона моей веб-страницы и иногда заканчивают таблицу html, которую я использую для отображения нескольких электронных писем.

Письма обычно содержат полные теги html, body, div и table. Нормальным явлением является тело bgcolor "ff0000", которое красит фон всего моего приложения красным.

Есть ли способ борьбы с этим или я должен кодировать его, чтобы убрать HTML-теги.

Также я попытался показать код электронной почты в iframes, но безрезультатно. на самом деле код вообще не отображался, просто пустое поле iframe.

<iframe>Body of html email here</iframe>

Я уверен, что упускаю что-то простое - любая помощь будет оценена.

Кстати, html электронной почты хранится в строке php.

Ответы [ 5 ]

4 голосов
/ 20 октября 2010

что вы можете сделать, это использовать JavaScript для вставки HTML-кода электронной почты в iFrame. Причина, по которой это меняет ваш фон, заключается в том, что у вас есть глобальные стили в таблице стилей для электронной почты, и они применяются к остальной части страницы.

$('#loader_frame')[0].contentDocument.body.innerHTML = YOUR HTML
3 голосов
/ 20 октября 2010

Содержимое внутри тега отображается, если браузер не поддерживает фреймы. Чтобы правильно использовать iframe, вы должны установить атрибут src: 1

<iframe src ="html_intro.asp" width="100%" height="300">
  <p>Your browser does not support iframes.</p>
</iframe>

На практике этот атрибут src может быть URL-адресом, извлекающим тело письма. Например:

<iframe src="getemail.php?id=12345" width="100%" height="300"></iframe>

Где ваш скрипт getemail.php берет запрошенный идентификатор и возвращает html-результаты, отображаемые во фрейме.

0 голосов
/ 20 октября 2010

Я бы тоже использовал iframe - проблема в том, что вы используете его неправильно (код в тегах является запасным вариантом для старых браузеров):

<iframe src="yoursite.com/youremail.html" width="600" height="600" name="emailFrame">
  <p>Sorry, your Browser can't display iFrames</p>
</iframe>
0 голосов
/ 20 октября 2010

, чтобы использовать iframe, вам нужно сохранить письмо как HTML-страницу и поместить ссылку на него в атрибуте iframe 'src.

Другой способ, как вы'Мы указали, что нужно удалить теги html и body.Но вам также необходимо удалить стили фона.

Еще одна вещь, которую нужно попробовать, - это сделать ваши стили со родительской страницы всегда приоритетными.

try

body { background:lightgreen !important; /* important will override styles that come later with the same specificity */ }
0 голосов
/ 20 октября 2010

попробуйте использовать элемент проверки chrome, чтобы отключить некоторые функции CSS и определить, какой элемент вызывает проблему, и отредактируйте в css

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...