繁体   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