5

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

是否有捷径可寻?

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

4

2 回答 2

6

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

 Element.prototype.innerText = function(){
var serializer = new XMLSerializer();
var serialized = serializer.serializeToString(this);
return serialized;
}
于 2012-07-26T06:56:55.630 回答
2

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

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);
};
于 2020-03-05T12:14:58.630 回答