9

ここですでに説明していることは知っていますが、ドキュメント全体(doctypeを含む)を取得するための解決策はありませんでした。

$(document).html();戻りますnull..。

4

8 に答える 8

15

これにより、すべてのHTMLが取得されます。

document.documentElement.outerHTML

残念ながら、Doctypeは返されません。しかし、あなたはdocument.doctypeそれを手に入れて、2つを一緒に接着するために使うことができます。

于 2013-01-31T08:21:33.037 に答える
7

できるよ

new XMLSerializer().serializeToString(document);

IE9より新しいすべてのブラウザー用

于 2016-03-10T12:59:24.867 に答える
4

これを試して。

$("html").html()

documentは変数であり、htmlタグを表していません。

編集

Doctypeを取得するには、次のように使用できます。

document.doctype
于 2013-01-31T08:19:52.897 に答える
3

これはIE6+でサポートされている関数であり、それouterHTML以上のサポートには使用されません。Doctypeが追加され、いくつかのトリックを使用してhtmlタグとその属性を取得します。doctypeの文字列を受け取るために、使用しないouterHTMLので、すべてのブラウザをサポートします。htmlタグを取得するためにいくつかのトリックを使用します。このコードを追加します:

document.fullHTML = function () {
    var r = document.documentElement.innerHTML, t = document.documentElement.attributes, i = 0, l = '',
        d = '<!DOCTYPE ' + document.doctype.name + (document.doctype.publicId ? ' PUBLIC "' + document.doctype.publicId + '"' : '') + (!document.doctype.publicId && document.doctype.systemId ? ' SYSTEM' : '') + (document.doctype.systemId ? ' "' + document.doctype.systemId + '"' : '') + '>';
    for (; i < t.length; i += 1) l += ' ' + t[i].name + '="' + t[i].value + '"';
    return d+'\n<html' + l + '>' + r + '</html>';
}

これで、次の関数を実行できます。

console.log(document.fullHTML());

これにより、HTMLとDoctypeが返されます。

これをexample.comで実行しました。結果は次のとおりです。

于 2015-05-20T04:29:59.600 に答える
1
document.documentElement.innerHTML 

すべてのドキュメントマークアップを文字列として返します

Doctype全体を取得するにはこれを読んでください

于 2013-01-31T08:25:08.573 に答える
1

完全なドキュメントを取得するかどうかはわかりませんが、できることは、htmlタグのコンテンツとdoctypeを別々に取得できることです。

$('html').html() for contentdoctypeを取得するためのdocument.doctype

于 2013-01-31T08:26:39.880 に答える
0

ドキュメント全体(Doctypeを含む)に直接アクセスできるとは思いませんが、これは機能します:

$.get(document.location, function(html) {
    // use html (which is the complete source code, including the doctype)
});
于 2013-01-31T08:19:47.350 に答える
0

私はブラウザのコンソールでそれをしました

document.documentElement;

于 2020-02-23T10:54:53.030 に答える