我想动态编写(并评估过)我写入标签的脚本。为什么这段代码不起作用?
<html>
<head>
<script id="cojs">
</script>
<script type="text/javascript">
document.getElementById('cojs').innerHTML = 'alert("hey");';
</script>
</head>
<body>
</body>
</html>
答案 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>