IE浏览器中的递归document.write

时间:2011-08-01 10:16:41

标签: javascript internet-explorer

在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中进行注入的方法。任何想法都表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要声明您的脚本元素并以结构化方式添加它:

var myScript = document.createElement("SCRIPT");
myScript.src='js1.js';
myScript.type='text/javascript';

document.getElementsByTagName("HEAD")[0].appendChild(myScript);

快乐的编码。

相关问题