CNode

node 怎么获取页面的dom以及样式,并发送邮件

问答
RRabbitzzc发布于7 年前最后回复7 年前8 回复5917 浏览0 收藏

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)

W
waitingsong#1·7 年前

cherio 好像是这个包,用于解析页面为dom结构

S
sbfkcel#2·7 年前

Puppeteer 了解下

R
Rabbitzzc#3·7 年前
引用 sbfkcelPuppeteer 了解下

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

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

R
Rabbitzzc#4·7 年前
引用 waitingsongcherio 好像是这个包,用于解析页面为dom结构

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

Y
yuanliwei#5·7 年前

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

S
sbfkcel#6·7 年前

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

R
Rabbitzzc#8·7 年前
引用 sbfkcelPuppeteer 了解下

@sbfkcel 用了,会丢失样式

参与回复
登录后即可参与回复。登录