<html>
<p> Some html </p>
<script> some script </script>
</html>
如何识别脚本标记并将其呈现为内容。
我有一个专门用于在我的网页中显示html的div,如果它有任何脚本我想将它们作为内容呈现,但是当将html附加到div时,脚本会被执行,我不想发生。如何防止脚本执行,是否有任何库可以执行此操作。
注意: 1.还应防止执行内联脚本。 2.附加的Html内容是动态的,并且来自电子邮件侦听器源
提前致谢!
答案 0 :(得分:1)
但是在将html附加到div时,脚本会被执行,我不想发生这种情况。如何防止脚本执行,是否有任何库可以执行此操作。
因为你说你已经拥有了div内容,所以一旦你追加它就会执行脚本,这是默认行为,我们可以做的是在附加你的div内容之前我们可以修改内容字符串来替换<script>
和</script>
<script>
和</script>
。所以这是它的演示。
var divContent = '<script>alert("I must not execute!!");<\/script>';
var res = divContent.replace(/<script/g,"<script>").replace(/<\/script/g,"</script>");
document.getElementById("output").innerHTML = res;
&#13;
<div id="output">
</div>
&#13;
答案 1 :(得分:0)
使用document.ready();方法。这只会在呈现所有HTML元素后运行JavaScript。更好的是,将您的函数包装在jQuery简写中:
$(function() {
alert( "DOM elements rendered!" );
});
答案 2 :(得分:-2)
您可以尝试使用jQuery document.ready();
函数,仅在页面加载时允许脚本执行。