[英]How to securely load email content with css style
I am using AngularJS to dynamically load the emails content. 我正在使用AngularJS动态加载电子邮件内容。 Everything works perfectly fine until the moment when I load email with html content and with own css style.
一切正常,直到我加载带有html内容和自己的CSS样式的电子邮件为止。 Then style from email affects style in my application.
然后,电子邮件中的样式会影响我的应用程序中的样式。
For example if in email body is css directive p { color: #f00; }
例如,如果在电子邮件正文中为css指令
p { color: #f00; }
p { color: #f00; }
, then in my entire app all paragraphs change color to red. p { color: #f00; }
,然后在我的整个应用中,所有段落的颜色都变为红色。
How to separate email styles from application styles? 如何将电子邮件样式与应用程序样式分开?
Thanks in advance! 提前致谢!
PS. PS。 My code looks like
我的代码看起来像
$scope.loadMessage = function(message_uid){
$scope.loadingMessage = true;
$http({
url: baseApiURL + 'mail/' + message_uid,
method: 'GET',
headers: {'Authorization': userApiKey},
}).then(showMessage, errorDuringLoadMessage);
showMessage = function(r) {
$scope.message.body = $sce.trustAsHtml(r.data.message);
$scope.message.subject = r.data.subject;
$scope.message.from = r.data.from;
$scope.loadingMessage = false;
};
/* ... */
};
And view: 并查看:
<div class="panel panel-success">
<div class="panel-body" ng-hide="loadingMessage" ng-bind-html="message.body">
</div>
The easiest way I can think of doing this is writing it into an iframe. 我想到的最简单的方法是将其写入iframe。
var frame = document.createElement('iframe');
/* position, style, and append iframe here... */
var frameDoc = frame.contentWindow.document;
frameDoc.open();
frameDoc.write($scope.message.body);
frameDoc.close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.