[英]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.