Tôi đã sử dụng document.documentElement.outerHTML 7, nhưng điều đó đã gây ra lỗi ... Có cách nào để có được mọi thứ không?
Gian lận
40.9K32 Huy hiệu vàng95 Huy hiệu bạc131 Huy hiệu Đồng32 gold badges95 silver badges131 bronze badges
hỏi ngày 11 tháng 6 năm 2009 lúc 18:09Jun 11, 2009 at 18:09
Chỉnh sửa: Sử dụng XMLSerializer ()
Đừng quên thẻ document.documentElement.outerHTML 8 cũng có thể có các thuộc tính. Nếu bạn muốn toàn bộ tài liệu này sẽ hoạt động.
$('html')[0].outerHTMLNó cũng tầm thường mà không có jQuery.
document.documentElement.outerHTMLNếu bạn cũng muốn bao gồm DocType, nó sẽ liên quan nhiều hơn một chút.
var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTMLĐã trả lời ngày 21 tháng 9 năm 2012 lúc 2:34Sep 21, 2012 at 2:34
Patrick McElhaneypatrick McElhaneyPatrick McElhaney
56.6K40 Huy hiệu vàng129 Huy hiệu bạc167 Huy hiệu đồng40 gold badges129 silver badges167 bronze badges
Bạn có thể thử:
$("html").html();Nếu bạn cũng muốn nắm bắt các thẻ HTML, bạn có thể kết nối chúng với HTML như thế này:
function getPageHTML() { return "<html>" + $("html").html() + "</html>"; }Đã trả lời ngày 11 tháng 6 năm 2009 lúc 18:12Jun 11, 2009 at 18:12
Jimmie R. Houtsjimmie R. HoutsJimmie R. Houts
7.5182 Huy hiệu vàng30 Huy hiệu bạc38 Huy hiệu Đồng2 gold badges30 silver badges38 bronze badges
3
Use:
document.body.innerHTMLĐã trả lời ngày 11 tháng 6 năm 2009 lúc 18:17Jun 11, 2009 at 18:17
2
document.documentElement.outerHTML 9 sẽ nhận được tất cả mọi thứ trừ hầu hết các thẻ HTML bên ngoài.
Đã trả lời ngày 11 tháng 6 năm 2009 lúc 18:12Jun 11, 2009 at 18:12
Jimmie R. Houtsjimmie R. HoutsMax Schmeling
7.5182 Huy hiệu vàng30 Huy hiệu bạc38 Huy hiệu Đồng14 gold badges65 silver badges107 bronze badges
1
Đã trả lời ngày 11 tháng 6 năm 2009 lúc 18:17
new XMLSerializer().serializeToString(document)document.documentElement.outerHTML 9 sẽ nhận được tất cả mọi thứ trừ hầu hết các thẻ HTML bên ngoài.including DOCTYPE tag, and it is supported in all modern browsers: //caniuse.com/#feat=xml-serializer
Max Schmelingmax SchmelingNov 9, 2019 at 9:58
12.2K14 Huy hiệu vàng65 Huy hiệu bạc107 Huy hiệu đồngFurloSK
Không cần phải dựa vào jQuery. Cách tiếp cận tốt nhất và đơn giản nhất là sử dụng2 silver badges14 bronze badges
Nhận nội dung HTML của phần tử đầu tiên trong tập hợp các phần tử phù hợp hoặc đặt nội dung HTML của mọi phần tử phù hợp.Contents:
.html () trả về: chuỗiReturns: String
Mô tả: Nhận nội dung HTML của phần tử đầu tiên trong tập hợp các phần tử phù hợp.Get the HTML contents of the first element in the set of matched elements.
Phiên bản được thêm vào: 1.0.html ().html()
Phương pháp này không chấp nhận bất kỳ đối số.
Phương pháp này không có sẵn trên các tài liệu XML.
Trong một tài liệu HTML, var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 0 có thể được sử dụng để có được nội dung của bất kỳ yếu tố nào. Nếu biểu thức chọn phù hợp với nhiều phần tử, chỉ có trận đấu đầu tiên sẽ có nội dung HTML được trả về. Xem xét mã này:
1 | $( "div.demo-container" ).html(); |
Để được truy xuất nội dung của ____ 21 sau đây, nó sẽ phải là công cụ đầu tiên có var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 2 trong tài liệu:
1 2 3 | ________số 8 |
Nội dung của var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 8 có thể được đặt như thế này:
1 | document.documentElement.outerHTML 2 |
Dòng mã đó sẽ thay thế mọi thứ bên trong var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 8:
Ghi chú bổ sung:
- Theo thiết kế, bất kỳ hàm tạo hoặc phương thức nào chấp nhận chuỗi HTML - jQuery (), .Append (), .After (), v.v. - có khả năng thực thi mã. Điều này có thể xảy ra bằng cách tiêm thẻ tập lệnh hoặc sử dụng các thuộc tính HTML thực thi mã (ví dụ: var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 4). Không sử dụng các phương pháp này để chèn các chuỗi thu được từ các nguồn không tin cậy như tham số truy vấn URL, cookie hoặc đầu vào hình thức. Làm như vậy có thể giới thiệu các lỗ hổng về chữ ký chéo (XSS). Xóa hoặc thoát bất kỳ đầu vào người dùng trước khi thêm nội dung vào tài liệu.
Example:
Nhấp vào một đoạn văn để chuyển đổi nó từ HTML sang văn bản.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | document.documentElement.outerHTML 0 |
Demo:
.html (htmlString) trả về: jQueryReturns: jQuery
Mô tả: Đặt nội dung HTML của mỗi phần tử trong tập hợp các phần tử phù hợp.Set the HTML contents of each element in the set of matched elements.
Phiên bản được thêm vào: 1.0.html (HTMLString).html( htmlString )
HTMLSTRING
Một chuỗi HTML để đặt làm nội dung của mỗi phần tử phù hợp.
Phiên bản được thêm vào: 1.4.html (chức năng).html( function )
function
Một hàm trả về nội dung HTML để đặt. Nhận vị trí chỉ mục của phần tử trong tập hợp và giá trị HTML cũ làm đối số. JQuery làm trống phần tử trước khi gọi hàm; Sử dụng đối số OldHTML để tham khảo nội dung trước đó. Trong hàm, var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 5 đề cập đến phần tử hiện tại trong tập hợp.
Phương pháp var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 0 không có sẵn trong các tài liệu XML.
Khi var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 0 được sử dụng để đặt nội dung của phần tử, bất kỳ nội dung nào trong phần tử đó đều được thay thế hoàn toàn bằng nội dung mới. Ngoài ra, JQuery loại bỏ các cấu trúc khác như dữ liệu và trình xử lý sự kiện khỏi các phần tử con trước khi thay thế các yếu tố đó bằng nội dung mới.
Hãy xem xét HTML sau:
1 2 3 | ________số 8 |
Nội dung của var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 8 có thể được đặt như thế này:
1 2 | document.documentElement.outerHTML 2 |
Dòng mã đó sẽ thay thế mọi thứ bên trong var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 8:
1 2 3 | document.documentElement.outerHTML 3 |
Kể từ JQuery 1.4, phương pháp var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 0 cho phép nội dung HTML được đặt bằng cách truyền trong một hàm.
1 2 3 4 | document.documentElement.outerHTML 4 |
Đưa ra một tài liệu với sáu đoạn văn, ví dụ này sẽ đặt HTML của var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 8 thành $("html").html(); 2.
Phương pháp này sử dụng thuộc tính var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 3 của trình duyệt. Một số trình duyệt có thể không tạo ra một DOM sao chép chính xác nguồn HTML được cung cấp. Ví dụ: Internet Explorer trước phiên bản 8 sẽ chuyển đổi tất cả các thuộc tính $("html").html(); 4 trên các liên kết sang URL tuyệt đối và Internet Explorer trước phiên bản 9 sẽ không xử lý chính xác các phần tử HTML5 mà không cần thêm một lớp tương thích riêng.
Để đặt nội dung của phần tử $("html").html(); 5, không chứa HTML, hãy sử dụng phương thức $("html").html(); 6 chứ không phải var getDocTypeAsString = function () { var node = document.doctype; return node ? "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n' : ''; }; getDocTypeAsString() + document.documentElement.outerHTML 0.
Lưu ý: Trong Internet Explorer lên đến và bao gồm phiên bản 9, việc đặt nội dung văn bản của phần tử HTML có thể làm hỏng các nút văn bản của trẻ em đang bị xóa khỏi tài liệu do kết quả của hoạt động. Nếu bạn đang giữ các tham chiếu đến các phần tử DOM này và cần không thay đổi, hãy sử dụng $("html").html(); 8 thay vì $("html").html(); 9 để các phần tử được xóa khỏi tài liệu trước khi chuỗi mới được gán cho phần tử. In Internet Explorer up to and including version 9, setting the text content of an HTML element may corrupt the text nodes of its children that are being removed from the document as a result of the operation. If you are keeping references to these DOM elements and need them to be unchanged, use $("html").html(); 8 instead of $("html").html(); 9 so that the elements are removed from the document before the new string is assigned to the element.
Examples:
Thêm một số HTML vào mỗi div.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | document.documentElement.outerHTML 5 |
Demo:
Thêm một số HTML vào mỗi Div sau đó ngay lập tức thực hiện các thao tác tiếp theo vào HTML được chèn.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | document.documentElement.outerHTML 6 |