[英]Basics of script pre-processing
我有以下代码:
<script id="toModify" >
Invalid javascript that will cause errors
</script>
<script>
var s=document.getElementById("toModify");
s.innerHTML="alert('Hi')";
</script>
而且它不起作用。
我知道至少需要做两件事才能使它起作用:
我该怎么做? 还有什么我需要做的吗?
使用type
属性,以使浏览器不执行脚本:
<script id="toModify" type="text/x-custom-whatever">...</script>
只需eval()
执行代码即可。
当然,动态生成代码充满了风险。 注意不要引入安全漏洞。
将脚本的类型设置为与不支持
的“文本/ javascript”不同
的类型将使脚本无法得到处理。
因此<script id="toModify" type="text/unprocessed">...</script>
那么您可以创建一个类型为script的新元素,设置它的innerHTML并将其附加到文档中。
就像是
var s = document.getElementById("toModify");
var processed = document.createElement('script'); // create a new script element
processed.innerHTML = "alert('Hi')"; // or do something with the s.innerHTML
document.body.insertBefore(processed, document.body.firstChild); // add the new element to the body, it gets executed immediately..
你不能 第一个脚本将始终首先运行。 即使它具有defer
属性,也不确定您是否可以更改其内容。
另请参阅此答案 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.