我想使用 javascript 将 DOM 树的当前状态序列化为字符串。尽管我更喜欢 html,但生成的格式并不重要。
是否有捷径可寻?
作为记录,我想使用 PhantomJs 自动下载页面,使用 js 脚本对其进行操作,并保存页面的当前状态(但不是图像或 pdf 格式)。
我想使用 javascript 将 DOM 树的当前状态序列化为字符串。尽管我更喜欢 html,但生成的格式并不重要。
是否有捷径可寻?
作为记录,我想使用 PhantomJs 自动下载页面,使用 js 脚本对其进行操作,并保存页面的当前状态(但不是图像或 pdf 格式)。
您可以使用 XMLSerializer 序列化 dom 的任何元素或部分。这里是代码
Element.prototype.innerText = function(){
var serializer = new XMLSerializer();
var serialized = serializer.serializeToString(this);
return serialized;
}
您可以在浏览器控制台中运行它:
new XMLSerializer().serializeToString(document);
替换document
为任何节点。例如,结合 CSS 选择:
new XMLSerializer().serializeToString(document.querySelector('h1'));
"http://www.w3.org/1999/xhtml\" itemprop=\"name\" class=\"grid--cell fs-headline1 fl1 ow-break-word mb8\">可以用js序列化吗当前的 DOM?”
我们可以将其包装在一个函数中:
const serializeElement = el => {
const serializer = new XMLSerializer();
return serializer.serializeToString(el);
};