簡體   English   中英

如何轉義HTML以用於JavaScript字符串?

[英]How to escape HTML for use in JavaScript strings?

基本上,我想這樣做:

const html = "HTML source code";

HTML源代碼可能包含換行符,制表符,引號...任何有效的HTML。 html變量的值然后用於使用JavaScript創建有效的html頁面,如下所示:

document.documentElement.innerHTML = unescape(html);

我嘗試了幾項操作,例如替換引號(單引號或雙引號),替換換行符並將html包裹在``中以創建模板文字...但是對於某些網頁(源代碼)似乎都失敗了。

例如:

//fails
const html = `HTML here`;
document.documentElement.innerHTML = html;

..和

如果我正確理解了您的問題,這應該可以幫助您:

 const html = "<p><h2>I'm a headline!</h2>I'm some text!</p>"; document.body.innerHTML = html; 


如果您的HTML代碼使用引號(用於ID,類等),則可以使用單引號:

 const html = '<div id="someDiv"><img src="https://en.wiktionary.org/wiki/tree"></div>'; document.body.innerHTML = html; 


如果您的代碼中包含換行符,請用\\n轉義,或者只是刪除它們,以便您的字符串適合一行:

 const html = "<p>\\n<h2>Headline!</h2\\n</p>"; document.body.innerHTML = html; 

當心: \\n != <br>


如果要通過添加兩個或多個變量將代碼字符串放在一起,請執行以下操作:

 const htmlPart1 = "<p><h2>"; const htmlPart2 = "Heading!</h2></p>"; document.body.innerHTML = htmlPart1 + htmlPart2; 


如果要插入包含一些JS的script標簽,恐怕您不能這樣做。 在編寫此答案時,我自己做了很多嘗試,但沒有找到任何解決方案。

如果我錯了,請糾正我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM