在javascript / jscript中。我们可以使用document.write("<script...")
将html片段加载到文档中。但是当html片段中有另一个document.write时。有些浏览器会进行递归脚本加载,但有些浏览器不会(IE)。
这是一个例子。 document.write将一个外部脚本(js1.js)和一个内联脚本注入到文档中。内联脚本将调用js1.js中定义的变量。这需要浏览器在执行内联脚本之前加载js1.js。在壁虎和野生动物园的brwoser。有用。但在IE浏览器中,它很糟糕。
test.html
<!DOCTYPE HTML>
<html>
<head><title></title></head>
<body>
<textarea id="tagContent" style="width:600px;height:400px;">
<script type="text/javascript">
document.write(unescape("%3Cscript src='js1.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
alert(xx);
</script>
</textarea>
<script type="text/javascript">
document.write(document.getElementById("tagContent").value);
</script>
</body>
</html>
js1.js
window.xx = "ssss";
我想找到一种在IE中进行注入的方法。任何想法都表示赞赏。谢谢!
答案 0 :(得分:1)
您需要声明您的脚本元素并以结构化方式添加它:
var myScript = document.createElement("SCRIPT");
myScript.src='js1.js';
myScript.type='text/javascript';
document.getElementsByTagName("HEAD")[0].appendChild(myScript);
快乐的编码。
乙