0

doctype を文字列にダンプする方法はあるのだろうか。

たとえば、BackboneJS に大きく依存する Web アプリケーションがあります。最初のページのソース コードは簡単ですが (スクリプトが必要なだけです)、バックボーンを読み込んだ後、コンテンツ全体が生成されます。W3C バリデーターに送信するために、特定の状態の DOM のソースを取得する方法を探しています。プロセスを自動化したいので、Firebug のインスペクターからコンテンツをコピーして貼り付けたいだけではありません。

でHTML要素をダンプできることはすでにわかっていますdocument.getElementsByTagName('html')[0].outerHTML。これは標準ではありませんが、多くのブラウザー (Chrome、Opera、その他) で動作します。これは問題ありません。ページ エンド ユーザー ユーザー向けのソリューションではなく、開発者向けのツールを作成しているためです。

ただし、このようなダンプには doctype に関する情報がありません。また、HTML バリデーターに指示するには doctype が必要です。私を手伝ってくれますか?このトピックについてご協力いただきありがとうございます。

4

2 に答える 2

2

このdocument.doctypeオブジェクトには、name( htmlHTML ドキュメント用の)プロパティpublicId、公開識別子systemId用、およびシステム識別子用のプロパティがあります。したがって、テキストの Doctype 宣言を次のように構築できます。

var doctype = '<' + '!DOCTYPE ' + document.doctype.name;
if(document.doctype.publicId) doctype += 
  ' PUBLIC "' + document.doctype.publicId + '"';
if(document.doctype.systemId) doctype += 
 ' "' + document.doctype.systemId + '"';
doctype += '>\n';
于 2012-10-21T19:23:58.827 に答える
1
document.doctype

それが役立つことを願っています。

于 2012-10-21T18:59:08.610 に答える