Hướng dẫn convert html to string jquery - chuyển đổi html thành chuỗi jquery

jQuery.parsehtml (data [, bối cảnh] [, keepscripts]) return: mảngReturns: Array

Mô tả: Phân tích một chuỗi vào một mảng các nút dom.Parses a string into an array of DOM nodes.

  • Phiên bản được thêm vào: 1.8JQuery.parsehtml (data [, bối cảnh] [, Keepscripts])jQuery.parseHTML( data [, context ] [, keepScripts ] )

    • dữ liệu

      Chuỗi HTML được phân tích cú pháp

    • Bối cảnh (mặc định: document) (default: document)

      Phần tử tài liệu để phục vụ như là bối cảnh trong đó đoạn HTML sẽ được tạo

    • Keepscripts (mặc định: false) (default: false)

      Một boolean cho biết có bao gồm các tập lệnh được truyền trong chuỗi HTML

jQuery.parseHTML sử dụng các phương thức gốc để chuyển đổi chuỗi thành một tập hợp các nút DOM, sau đó có thể được chèn vào tài liệu. Các phương pháp này làm cho tất cả các văn bản theo dõi hoặc hàng đầu (ngay cả khi đó chỉ là khoảng trắng). Để ngăn chặn khoảng trắng kéo dài/hàng đầu không được chuyển đổi thành các nút văn bản, bạn có thể chuyển chuỗi HTML qua

$('').html();
0.

Theo mặc định,

$('').html();
1 là document hiện tại nếu không được chỉ định hoặc được đưa ra là
$('').html();
3 hoặc
$('').html();
4. Nếu HTML được sử dụng trong một tài liệu khác như iframe, tài liệu của khung đó có thể được sử dụng.

Theo 3.0, hành vi mặc định được thay đổi. Nếu

$('').html();
1 không được chỉ định hoặc được đưa ra là
$('').html();
3 hoặc
$('').html();
4, một document mới được sử dụng. Điều này có khả năng cải thiện bảo mật vì các sự kiện nội tuyến sẽ không thực hiện khi HTML được phân tích cú pháp. Khi HTML được phân tích cú pháp được đưa vào một tài liệu, nó sẽ thực thi, nhưng điều này mang lại cho các công cụ cơ hội để vượt qua DOM đã tạo và loại bỏ bất cứ thứ gì được coi là không an toàn. Sự cải thiện này không áp dụng cho việc sử dụng nội bộ của jQuery.parseHTML vì chúng thường vượt qua trong document hiện tại. Do đó, một tuyên bố như
var $html = $('');    
var str = $html.prop('outerHTML');
console.log(str);
1 vẫn phải chịu sự tiêm của mã độc.

Cân nhắc về Bảo mật

Hầu hết các API jQuery chấp nhận chuỗi HTML sẽ chạy các tập lệnh được bao gồm trong HTML. jQuery.parseHTML không chạy các tập lệnh trong HTML được phân tích cú pháp trừ khi

var $html = $('');    
var str = $html.prop('outerHTML');
console.log(str);
3 rõ ràng là
var $html = $('');    
var str = $html.prop('outerHTML');
console.log(str);
4. Tuy nhiên, trong hầu hết các môi trường vẫn có thể thực hiện các tập lệnh một cách gián tiếp, ví dụ thông qua thuộc tính
var $html = $('');    
var str = $html.prop('outerHTML');
console.log(str);
5. Người gọi nên nhận thức được điều này và bảo vệ chống lại nó bằng cách làm sạch hoặc thoát khỏi bất kỳ đầu vào không đáng tin cậy nào từ các nguồn như URL hoặc cookie. Đối với khả năng tương thích trong tương lai, người gọi không nên phụ thuộc vào khả năng chạy bất kỳ nội dung tập lệnh nào khi
var $html = $('');    
var str = $html.prop('outerHTML');
console.log(str);
3 không xác định hoặc false.

Example:

Tạo một mảng các nút DOM bằng chuỗi HTML và chèn nó vào 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

26

27

28

29

30

31

32

33

34

35

36

<title>jQuery.parseHTML demotitle>

<script src="https://code.jquery.com/jquery-3.5.0.js">script>

str = "hello, my name is jQuery.",

html = $.parseHTML( str ),

// Append the parsed HTML

// Gather the parsed HTML's node names

$.each( html, function( i, el ) {

nodeNames[ i ] = "

  • " + el.nodeName + "
  • ";

    $log.append( "

    Node Names:

    " );

    .append( nodeNames.join( "" ) )

    Demo:

    Đã trả lời ngày 6 tháng 11 năm 2013 lúc 12:56

    $('').html();
    

    Làm thế nào tôi có thể làm theo cách khác?

    Denys Séguret

    362K84 Huy hiệu vàng769 Huy hiệu bạc741 Huy hiệu Đồng84 gold badges769 silver badges741 bronze badges

    Đã hỏi ngày 6 tháng 11 năm 2013 lúc 12:46Nov 6, 2013 at 12:46

    Hướng dẫn convert html to string jquery - chuyển đổi html thành chuỗi jquery

    1

    Bạn có thể làm được việc này:

    var $html = $('');    
    var str = $html.prop('outerHTML');
    console.log(str);

    Demo fiddle

    Justcarty

    3.7145 huy hiệu vàng30 Huy hiệu bạc 50 Huy hiệu Đồng5 gold badges30 silver badges50 bronze badges

    Đã trả lời ngày 6 tháng 11 năm 2013 lúc 12:50Nov 6, 2013 at 12:50

    Hướng dẫn convert html to string jquery - chuyển đổi html thành chuỗi jquery

    Palaѕяpalaѕяpalaѕн

    70.1K17 Huy hiệu vàng111 Huy hiệu bạc131 Huy hiệu đồng17 gold badges111 silver badges131 bronze badges

    Những gì bạn muốn là HTML bên ngoài, không phải HTML bên trong:

    $('')[0].outerHTML;
    

    Đã trả lời ngày 6 tháng 11 năm 2013 lúc 12:49Nov 6, 2013 at 12:49

    Denys Séguretdenys SéguretDenys Séguret

    362K84 Huy hiệu vàng769 Huy hiệu bạc741 Huy hiệu Đồng84 gold badges769 silver badges741 bronze badges

    1

    var $html = $('');    
    var str = $html.prop('outerHTML');
    console.log(str);
    8 sẽ trở lại
    var $html = $('');    
    var str = $html.prop('outerHTML');
    console.log(str);
    9. (cất cánh
    0 và đó là chuỗi của bạn)

    Rằng aughta làm điều đó :)

    Đã trả lời ngày 15 tháng 1 năm 2014 lúc 19:05Jan 15, 2014 at 19:05

    CodycodyCody

    9.4584 Huy hiệu vàng59 Huy hiệu bạc45 Huy hiệu Đồng4 gold badges59 silver badges45 bronze badges

    Hãy thử một cách tiếp cận nhỏ khác:

    //set string and append it as object
    var myHtmlString = '';
    $('body').append(myHtmlString);
    
    //as you noticed you can't just get it back
    var myHtmlStringBack = $('#myFrame').html(); 
    alert(myHtmlStringBack); // will be empty (a bug in jquery?) but...
    
    //since an id was added to your iframe so you can retrieve its attributes back...
    var width = $('#myFrame').attr('width');
    var height = $('#myFrame').attr('height');
    var src = $('#myFrame').attr('src');
    var myReconstructedString = '';
    alert(myReconstructedString);
    

    Đã trả lời ngày 6 tháng 11 năm 2013 lúc 13:47Nov 6, 2013 at 13:47

    Gal Samuelgal SamuelGal Samuel

    4932 Huy hiệu bạc12 Huy hiệu Đồng2 silver badges12 bronze badges

    Bạn chỉ có thể bọc nó vào một yếu tố khác và gọi

    1 sau đó:

    $('
    ').html();

    Lưu ý rằng

    2 không tồn tại trên các trình duyệt cũ hơn nhưng
    3 vẫn không (nó không tồn tại ví dụ trong FF <11 trong khi nó vẫn được sử dụng trên nhiều máy tính cũ hơn)

    Đã trả lời ngày 6 tháng 11 năm 2013 lúc 12:56Nov 6, 2013 at 12:56

    AdasskoadasskoAdassko

    4.84819 Huy hiệu bạc36 Huy hiệu đồng19 silver badges36 bronze badges

    Làm thế nào để chuyển đổi thẻ HTML thành chuỗi trong jQuery?

    Chuyển đổi một đối tượng jQuery thành một chuỗi.Mã JavaScript: VAR phần tử = $ ('', {văn bản: "jQuery", class: "test"});$ ('#đầu ra').var element = $('

    ',{ text : "jQuery", class : "test" }); $('#output').

    Làm cách nào để nhận được văn bản từ HTML trong jQuery?

    Bạn có thể sử dụng $ ('. GetText'). Text ();Trong jQuery.$('. gettext'). text(); in jQuery.

    Parsehtml trong javascript là gì?

    Parsehtml sử dụng các phương thức gốc để chuyển đổi chuỗi thành một tập hợp các nút dom, sau đó có thể được chèn vào tài liệu.Các phương pháp này làm cho tất cả các văn bản theo dõi hoặc hàng đầu (ngay cả khi đó chỉ là khoảng trắng).uses native methods to convert the string to a set of DOM nodes, which can then be inserted into the document. These methods do render all trailing or leading text (even if that's just whitespace).

    Làm thế nào để chuyển đổi đối tượng thành chuỗi trong jQuery?

    Sử dụng phương thức json.Stringify () để chuyển đổi đối tượng thành chuỗi và hiển thị nội dung chuỗi.Sử dụng phương thức param () để tuần tự hóa phần tử đối tượng làm chuỗi truy vấn và lưu trữ nó thành một biến. stringify() method to convert the object into strings and display the string contents. Use param() method to serialize the object element as query string and store it into a variable.