node 怎么获取页面的dom以及样式,并发送邮件
node 怎么获取页面的dom以及样式,并发送邮件
目前采用的是获取dom,将dom的style全部内联到dom中,下面的代码:
const el = document.querySelector(name);
const els = el.getElementsByTagName('*');
for(let i = 0; i < els.length; i++) {
els[i].setAttribute('style', window.getComputedStyle(els[i]).cssText);
}
然后将dom插入html,发送 但是样式好像不太一样 希望大家给点建议,有没有好的办法
8 回复
cherio 好像是这个包,用于解析页面为dom结构
Puppeteer 了解下
@waitingsong cheerio吧
@sbfkcel 用了,会丢失样式
@sbfkcel 页面解析以后,获取dom,然后将dom的样式内联,在客户端和网页端的样式是不同的,不太清楚原因,网页端是与页面一样的,客户端会丢失一部分样式
或者你可以尝试,使用上面的代码,去任何一个网站去实验,会发现字体样式会丢失
@waitingsong Puppeteer更好,截屏等功能都挺好
邮件应该是支持style标签的,所以应该不需要把样式内联到dom上
@Rabbitzzc 如果要字体的话,你得转成图形才可以了。