如何在阅读邮件时时保留原有html格式正文的样式
思路是读邮件时先将邮件内容write到一个 iframe 元素中,然后通过下面这个函数去得到一些重要的样式值,收集这些值显示写到其style属性里,然后取得其 innerHTML,这样就可以部分保留html片段原先的格式。处理方法如下:
//定制想收集样式的结点
var nodes = node.querySelectorAll("style,script,div,a,span,table,tr,th,tbody,td,hr,article,section,aside,header,img");
var tempNode;
var cssCollection;
//想收集的属性集合
var needProp = ["background","border","boxShadow","color","content","cursor","display","float",
"font","fontFamily","fontSize","fontWeight",
"height","letterSpacing","lineHeight","margin","opacity","outline","overflow","padding",
"position","src","stroke","textAlign","visibility","whiteSpace","width",
"wordBreak","wordSpacing","wordWrap","zIndex","zoom"];
var i2 = 0, len = 0; //迭代器 var newCssText = ""; //组装新的style属性内容 var l = nodes.length;
if (l < 500) { //如果内容矿长结点过多会影响性能,这里限制为500个以内结点
for (var i=0; i < l; i++) {
tempNode = nodes[i];
cssCollection = window.getComputedStyle(tempNode,null);
if ("STYLESCRIPT".indexOf(tempNode.tageName) > -1) {//remove掉style 和script结点
node.removeChild(tempNode);
} else {
for (i2=0,len=needProp.length; i2 < len; i2++) {
newCssText += needProp[i2] + ":" + cssCollection[needProp[i2]] + ";";
}
tempNode.style.cssText = newCssText;
}
}
}
return node.innerHTML;
}
转载于:https://www.cnblogs.com/ihada/archive/2012/05/16/2503430.html
如何在阅读邮件时时保留原有html格式正文的样式相关推荐
- 尽可能保留原有数据,建立UEFI与BIOS双启PE优盘
尽可能保留原有数据,建立UEFI与BIOS双启PE优盘 1.确保优盘或者移动硬盘有一个FAT32分区,如果没有FAT32分区,就用傲梅分区助手或者ppm转换一个现有的分区到FAT32分区0x0C,或者 ...
- foxmail 服务器备份 立刻删除_Foxmail删除服务器邮件而保留本地备份的详细操作方法...
Foxmail删除服务器邮件而保留本地备份的详细操作方法 作者:小葫芦 来源:PC下载网时间:2019-07-17 14:49:11 很多的公司中与客户发送资料都是使用Foxmail,那么你们知道在F ...
- 改造家里的开关成为智能开关,保留原有开关控制,零火版,射频遥控器篇(二)
改造家里的开关成为智能开关,保留原有开关控制,零火版 ,射频遥控器篇(二) 阳阳学编程 更新说明 本文章在"改造家里的开关成为智能开关,保留原有开关控制,零火版(一)"版本的基本上 ...
- 超简单的方法完整保留原有所有样式拆分Excel表
本文作为一篇原始雏形已经过时,新版本的文章请移步到: 深度剖析Excel表拆分的三项技术(已实现纯Openpyxl保留全部样式拆分,自适应单文件和多文件拆分等):https://blog.csdn.n ...
- MATLAB AppDesigner 中TextArea保留原有信息并换行显示提示信息
App Designer 中的文本区域TextArea组件,一般可以用来作为matlab app设计中的信息显示. app.TextArea.Value = 'Hello Matlab'; Value ...
- peel在Linux生成excel,如何将多个Excel文件合并成一个且保留原有数据?
如何将多个Excel文件合并成一个且保留原有数据?事实上,我们可以借用Excel宏命令来处理该操作,并且保留原有数据,建立多个Sheet页,具体操作请看下文多个Excel文件合并成一个的方法. 如何将 ...
- CAS客户端使用Ajax登陆(即保留原有客户端登录页面)
前言 因为对项目的不熟悉,在使用CAS的时候,踩了蛮多的坑,前面的文章提到了怎么跟shiro集成,可以说是花了比较多的时间.而实际的需求却不止于此.公司希望保留原有应用的登录页面.这个可又是一 ...
- springboot:java实现邮件及附件发送、HTML正文的三种方式(一)【附带源码】
0. 引言 邮件发送是我们日常开发中比较常见的功能,常用于预警信息提醒.统计数据定期发送等需求.一般该方法会由前人封装好,实际开发时只需要调用即可,但具体怎么实现的,如何从零实现邮件发送,这是我们要掌 ...
- php 点击之后保留样式,通过不修改arc.archives.class.php而保留原有样式调上一篇下一篇...
今天织梦站长分享一个织梦内容页上下篇的调用方法,估计在大家在仿站的过程中,经常会碰到原站的上下篇很美观,比如如图类似的这种:或,但是用织梦原有调用上下篇的标签来调用,总达不到我们想要的效果,找不到原站 ...
最新文章
- 安装modelsim
- hushen 300
- 符号化Symbol(符号)体系(转载)
- boost::mpl::negate相关的测试程序
- 【nginx+lua高性能web应用开发(二):开发评论模块(ssi+mysql)】
- 【HDU - 5917】Instability(规律,结论,Ramsey定理,知识点,tricks)
- 第三届“空间信息网络”学术论坛诚邀您的参加
- db_host 直接用ip地址吗_新买的粉扑能直接用吗?使用粉扑要注意什么?
- 海康VisionMaster绘制图形到显示窗口
- Linux-awk直接修改原文件
- Java语法基础常见疑惑解答
- ASP.NET基础教程-利用javascript将光标定位到文本框
- 非常经典的java编程题全集-共50题(1-10)
- APP专项测试——弱网测试
- 宏观经济学 马工程教材个人笔记整理
- linux运行blast,Linux下BLAST的使用
- 微信公众号内测开放个人订阅号认证!
- 论文阅读5 Cv-CapsNet:Complex-Valued Capsule Network
- 遇到100万行的 Excel,还没打开,电脑和我都崩溃了,该怎么办?
- UAF 身份认证框架