Hướng dẫn can you add html in a string? - bạn có thể thêm html vào một chuỗi không?

Giả sử bạn có một số HTML là một chuỗi:

let string_of_html = `
  
Cool
`;

Có thể nó đến từ một API hoặc bạn đã tự xây dựng nó từ các mẫu văn bản hoặc một cái gì đó.

Bạn có thể sử dụng

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
8 để đưa nó vào một yếu tố, như:

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;

Bạn có quyền kiểm soát hơn một chút nếu bạn đi với chức năng

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
9 vì bạn có thể đặt HTML mới ở bốn nơi khác nhau:



  
  text inside node
  

Bạn sử dụng nó như…

el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];

Có những trường hợp bạn có thể muốn có DOM mới được tạo ra trong JavaScript trước khi bạn làm bất cứ điều gì với nó. Trong trường hợp đó, bạn có thể phân tích chuỗi của mình trước, như:

let dom = new DOMParser[]
  .parseFromString[string_of_html, 'text/html'];

Điều đó sẽ cung cấp cho bạn một DOM hoàn chỉnh, vì vậy bạn sẽ cần phải kéo đứa trẻ bạn thêm vào. Giả sử nó chỉ có một yếu tố cha mẹ, mà giống như

let dom = new DOMParser[]
  .parseFromString[string_of_html, 'text/html'];
let new_element = dom.body.firstElementChild;

Bây giờ bạn có thể gây rối với



  
  text inside node
  

0 đó khi cần thiết, tôi cho rằng trước khi làm những gì bạn cần làm với nó.

Mặc dù vậy, nó rất đơn giản hơn để làm điều này:

let new_element = document.createRange[]
  .createContextualFragment[string_of_html];

Bạn sẽ nhận được phần tử trực tiếp như một đoạn tài liệu để nối hoặc bất cứ điều gì khi cần thiết. Phương pháp này đáng chú ý ở chỗ nó thực sự sẽ thực hiện



  
  text inside node
  

1s mà nó tìm thấy bên trong, có thể vừa hữu ích vừa nguy hiểm.

Có một lượng đáng kể sắc thái cho tất cả điều này. Ví dụ, HTML cần phải hợp lệ. HTML bị dị tật chỉ là đi làm. Bị dị tật cũng có thể khiến bạn ngạc nhiên, như đưa



  
  text inside node
  

2 vào


  
  text inside node
  

3 sẽ thất bại vì nó thiếu một


  
  text inside node
  

4.

Koen Schaft viết ra Tạo một nút DOM từ chuỗi HTML, bao gồm những gì chúng ta có ở đây nhưng chi tiết hơn và với nhiều gotchas hơn.

Cách nối chuỗi chuỗi HTML như

var str = '

Just some text here

';

đến



  
  text inside node
  

5 với ID


  
  text inside node
  

6?

[BTW



  
  text inside node
  

7 không được chấp nhận.]

hỏi ngày 6 tháng 9 năm 2011 lúc 22:48Sep 6, 2011 at 22:48

Šime Vidasšime vidasŠime Vidas

177K60 Huy hiệu vàng279 Huy hiệu bạc377 Huy hiệu đồng60 gold badges279 silver badges377 bronze badges

0

Màn biểu diễn



  
  text inside node
  

8 [e] nhanh hơn 2 lần so với các giải pháp khác trên Chrome và Safari, ____ 19 [f] là nhanh nhất trên Firefox.
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
0 [b] [không nhầm lẫn với
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
1 [a]] là giải pháp nhanh thứ hai trên tất cả các trình duyệt và nó tiện dụng hơn nhiều so với E và F.

Thông tin chi tiết

Thiết lập môi trường [2019.07.10] MacOS High Sierra 10.13.4 trên Chrome 75.0.3770 [64-bit], Safari 11.1.0 [13604.5.6], Firefox 67.0.0 [64-bit]

  • Trên Chrome E [hoạt động 140K mỗi giây] nhanh nhất, B [47K] và F [46K] là thứ hai, A [332] là chậm nhất
  • Trên Firefox F [94K] nhanh nhất, sau đó B [80K], D [73K], E [64K], C [21K] chậm nhất là A [466]
  • Trên Safari E [207K] là nhanh nhất, sau đó B [89K], F [88K], D [83K], C [25K], chậm nhất là A [509]

Bạn có thể phát lại bài kiểm tra trong máy của bạn ở đây

Đã trả lời ngày 2 tháng 7 năm 2018 lúc 16:57Jul 2, 2018 at 16:57

Kamil Kiełczewskikamil KiełczewskiKamil Kiełczewski

77.7K27 Huy hiệu vàng342 Huy hiệu bạc319 Huy hiệu đồng27 gold badges342 silver badges319 bronze badges

3

Làm thế nào bao gồm HTML trong Java?

var child = document.createElement['div'];
child.innerHTML = str;
child = child.firstChild;
document.getElementById['test'].appendChild[child];

jsFiddle.

Các hướng dẫn của Java đã được viết cho JDK 8 .., Neil's answer is a better solution.

Nhấp vào nút khởi chạy để chạy HTMLDEMO bằng Web Java ™ Start [tải xuống JDK 7 trở lên]. ....Sep 6, 2011 at 22:51

Chỉnh sửa định dạng HTML trong khu vực văn bản ở bên trái và nhấp vào nút "Thay đổi nhãn". ....alex

Xóa thẻ khỏi vùng văn bản ở bên trái ..197 gold badges868 silver badges977 bronze badges

10

Có chuỗi trong HTML không?

var target = document.getElementById['test'];
var str = '

Just some text here

'; var temp = document.createElement['div']; temp.innerHTML = str; while [temp.firstChild] { target.appendChild[temp.firstChild]; }

Nó chỉ là văn bản đơn giản, không có ý nghĩa [mã] được gắn vào nó. Nhưng bạn không thực sự sử dụng các loại chuỗi trong HTML, nhưng nhiều hơn trong các ngôn ngữ kịch bản thực sự khác như JS, PHP hoặc Java, và trong các ngôn ngữ đó, bạn thường phải thoát khỏi nó bằng trích dẫn ["hoặc '].

Cách nối chuỗi chuỗi HTML nhưOct 24, 2011 at 6:02

đến



  
  text inside node
  

5 với ID


  
  text inside node
  

6?Chris Calo

[BTW



  
  text inside node
  

7 không được chấp nhận.]7 gold badges47 silver badges61 bronze badges

0

hỏi ngày 6 tháng 9 năm 2011 lúc 22:48

Šime Vidasšime vidas

177K60 Huy hiệu vàng279 Huy hiệu bạc377 Huy hiệu đồngOct 21, 2011 at 17:39

Màn biểu diễnhsivonen



  
  text inside node
  

8 [e] nhanh hơn 2 lần so với các giải pháp khác trên Chrome và Safari, ____ 19 [f] là nhanh nhất trên Firefox.
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
0 [b] [không nhầm lẫn với
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
1 [a]] là giải pháp nhanh thứ hai trên tất cả các trình duyệt và nó tiện dụng hơn nhiều so với E và F.1 gold badge30 silver badges35 bronze badges

1

Thông tin chi tiếtHack:

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
0

Thiết lập môi trường [2019.07.10] MacOS High Sierra 10.13.4 trên Chrome 75.0.3770 [64-bit], Safari 11.1.0 [13604.5.6], Firefox 67.0.0 [64-bit]:

Trên Chrome E [hoạt động 140K mỗi giây] nhanh nhất, B [47K] và F [46K] là thứ hai, A [332] là chậm nhất

Trên Firefox F [94K] nhanh nhất, sau đó B [80K], D [73K], E [64K], C [21K] chậm nhất là A [466]

Trên Safari E [207K] là nhanh nhất, sau đó B [89K], F [88K], D [83K], C [25K], chậm nhất là A [509] //js.do/HeavyMetalCookies/quick_hack

Bạn có thể phát lại bài kiểm tra trong máy của bạn ở đây

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
1

Đã trả lời ngày 2 tháng 7 năm 2018 lúc 16:57

điều này có chấp nhận được không?

  1. Nhưng, câu trả lời của Neil là một giải pháp tốt hơn.
  2. Đã trả lời ngày 6 tháng 9 năm 2011 lúc 22:51

Alexalex

469K197 Huy hiệu vàng868 Huy hiệu bạc977 Huy hiệu ĐồngAug 20, 2018 at 9:10

Ý tưởng là sử dụng

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
8 trên một yếu tố trung gian và sau đó di chuyển tất cả các nút con của nó đến nơi bạn thực sự muốn chúng qua
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
3.KANJICODER

Điều này tránh xóa bỏ mọi trình xử lý sự kiện trên

el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
4 nhưng vẫn cho phép bạn nối một chuỗi HTML.28 silver badges16 bronze badges

Đã trả lời ngày 24 tháng 10 năm 2011 lúc 6:02

let dom = new DOMParser[]
  .parseFromString[string_of_html, 'text/html'];
4

Chris Calochris Calo

7.1777 Huy hiệu vàng47 Huy hiệu bạc61 Huy hiệu ĐồngSep 6, 2011 at 22:56

Cách đúng là sử dụng

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
9. Trong Firefox sớm hơn 8, bạn có thể quay lại bằng cách sử dụng
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
6 nếu
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
7 của bạn không chứa thẻ
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
8.Nick Brunt

Nếu

el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
7 của bạn chứa các thẻ
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
8, bạn cần xóa các phần tử
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
8 khỏi đoạn được trả về bởi
let dom = new DOMParser[]
  .parseFromString[string_of_html, 'text/html'];
2 trước khi chèn đoạn. Nếu không, các tập lệnh sẽ chạy. [
document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
9 Marks Scripts không thể chối cãi.]8 gold badges50 silver badges82 bronze badges

5

Đã trả lời ngày 21 tháng 10 năm 2011 lúc 17:39

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
2

HsivonenhsivonenFeb 6, 2018 at 20:59

1

7,7881 Huy hiệu vàng 30 Huy hiệu bạc35 Huy hiệu Đồng

Hack nhanh:

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
3

Trường hợp sử dụng:

1: Lưu dưới dạng tệp .html và chạy trong Chrome hoặc Firefox hoặc Edge. [Tức là sẽ không hoạt động]

2: Sử dụng trong //js.do

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
4
document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
5

Trong hành động: //js.do/eavymetalcookies/quick_hackAug 2, 2018 at 8:36

Bị phá vỡ với nhận xét:

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
6

Đã trả lời ngày 14 tháng 10 lúc 12:04Oct 14 at 12:04

Ngắn nhất - 18 ký tự [không nhầm lẫn

el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
1 [đề cập bởi OP] với
let dom = new DOMParser[]
  .parseFromString[string_of_html, 'text/html'];
6 chi tiết thêm ở đây]
- 18 chars [not confuse
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
1 [mention by OP] with
let dom = new DOMParser[]
  .parseFromString[string_of_html, 'text/html'];
6 more details here]

document.body.innerHTML = string_of_html;

// Append it instead
document.body.innerHTML += string_of_html;
7

Đã trả lời ngày 13 tháng 2 năm 2020 lúc 17:10Feb 13, 2020 at 17:10

Kamil Kiełczewskikamil KiełczewskiKamil Kiełczewski

77.7K27 Huy hiệu vàng342 Huy hiệu bạc319 Huy hiệu đồng27 gold badges342 silver badges319 bronze badges

1

Làm thế nào bao gồm HTML trong Java?

Các hướng dẫn của Java đã được viết cho JDK 8 ...
Nhấp vào nút khởi chạy để chạy HTMLDEMO bằng Web Java ™ Start [tải xuống JDK 7 trở lên].....
Chỉnh sửa định dạng HTML trong khu vực văn bản ở bên trái và nhấp vào nút "Thay đổi nhãn".....
Xóa thẻ khỏi vùng văn bản ở bên trái ..

Có chuỗi trong HTML không?

Nó chỉ là văn bản đơn giản, không có ý nghĩa [mã] được gắn vào nó.Nhưng bạn không thực sự sử dụng các loại chuỗi trong HTML, nhưng nhiều hơn trong các ngôn ngữ kịch bản thực sự khác như JS, PHP hoặc Java, và trong các ngôn ngữ đó, bạn thường phải thoát khỏi nó bằng trích dẫn ["hoặc '].you don't really use string types in HTML, but more in other true scripting languages such as JS, PHP, or Java, and in those languages you would usually have to escape it with quotes [ " or ' ].

Bài Viết Liên Quan

Chủ Đề