阅读量:6
如果想在innerHTML中插入带有脚本标签的内容,需要小心处理,以避免出现安全问题。一种常见的方法是先将脚本内容转义为字符串,然后再将其插入到innerHTML中。
例如,可以使用JS的replace方法将脚本标签转义为字符串,并将其插入到innerHTML中:
var scriptContent = "<script>alert('Hello, world!');</script>"; var escapedScriptContent = scriptContent.replace(/</g, "<").replace(/>/g, ">"); document.getElementById("myElement").innerHTML = escapedScriptContent;
另一种方法是创建一个新的script标签,并将脚本内容作为文本节点插入到其中,然后再将该新的script标签插入到所需的元素中:
var scriptContent = "alert('Hello, world!');"; var scriptElement = document.createElement("script"); scriptElement.textContent = scriptContent; document.getElementById("myElement").appendChild(scriptElement);
无论使用哪种方法,都要确保插入的脚本内容是可信任的,以避免潜在的安全风险。