动态编写和评估<script> </script>

时间:2011-02-08 01:15:40

标签: javascript html

我想动态编写(并评估过)我写入标签的脚本。为什么这段代码不起作用?

<html>
<head>

<script id="cojs">

</script>

<script type="text/javascript">
document.getElementById('cojs').innerHTML = 'alert("hey");';
</script>
</head>
<body>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

在解析脚本标记时会对其进行评估。因此,由于上面的部分在您更改之后不再被解析,所以它不起作用。

如果你的用例允许它尝试使用eval函数:

<html>
<head>
    <script type="text/javascript">
    eval('alert("hey");');
    </script>
</head>
<body>
</body>
</html>

答案 1 :(得分:0)

如果要解释脚本,则需要将其添加到文档中。 有些浏览器不使用innerHTML作为脚本,但都会设置脚本的文本属性。

<!doctype html>
<html lang= "en">
<head>
<meta charset= "utf-8">
<title> title</title>

<script>
    window.onload=function(){
        var head=document.getElementsByTagName('head')[0],
        who= document.createElement('script');
        who.text= 'alert("hey");';
        head.appendChild(who);
    }
</script>

</head>
<body>
</body>
</html>