我可以使用JS来序列化当前的DOM吗?

时间:2012-07-18 23:04:32

标签: javascript dom

我想使用javascript将DOM树的当前状态序列化为字符串。结果格式并不重要,尽管我更喜欢html。

有一种简单的方法吗?

为了记录,我想使用PhantomJs自动下载页面,使用js脚本操作它,并保存页面的当前状态(但不是图像或pdf)。

2 个答案:

答案 0 :(得分:4)

您可以使用XMLSerializer序列化任何元素或dom的一部分。这是代码

 Element.prototype.innerText = function(){
var serializer = new XMLSerializer();
var serialized = serializer.serializeToString(this);
return serialized;
}

答案 1 :(得分:1)

您可以在浏览器控制台中运行它:

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);
};