node 怎么获取页面的dom以及样式,并发送邮件
发布于 4 年前 作者 Rabbitzzc 4701 次浏览 来自 问答

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 了解下

@sbfkcel 用了,会丢失样式

@sbfkcel 页面解析以后,获取dom,然后将dom的样式内联,在客户端和网页端的样式是不同的,不太清楚原因,网页端是与页面一样的,客户端会丢失一部分样式

或者你可以尝试,使用上面的代码,去任何一个网站去实验,会发现字体样式会丢失

@waitingsong Puppeteer更好,截屏等功能都挺好

邮件应该是支持style标签的,所以应该不需要把样式内联到dom上

@Rabbitzzc 如果要字体的话,你得转成图形才可以了。

回到顶部