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