我正在尝试使用innerHTML来制作段落。
innerHTML="<html><head></head><body></body></html>";
但我当然会因为试图处理标签而遇到错误。我怎样才能让浏览器忽略这些标签,因为它们是引号?
答案 0 :(得分:3)
尝试:
innerHTML="<html><head></head><body></body></html>".replace(/</g,'<');
单词:用<
替换所有<
会触发浏览器将<
呈现为字符串<
,但[浏览器]不会尝试呈现html-string为html。您也可以将所有>
替换为>
当然。
或者您可以使用textContent
代替innerHTML
,这将直接转义字符串:
[yourElement].textContent = '<html><head></head><body></body></html>';
答案 1 :(得分:-1)
在这种情况下你应该转义HTML。
常见功能怎么样:
function escape(s) {
var el = document.createElement("div");
el.innerText = el.textContent = s;
s = el.innerHTML;
return s;
}
用法:
innerHTML = escape("<html><head></head><body></body></html>");
我认为使用浏览器内置行为来转义HTML比尝试替换所有特殊字符要好。