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 に答える