我知道IE9已经过时了,但它是我在构建的Web应用程序中仍然必须支持的最低版本的IE。
总之,在不同浏览器中进行dom操作和测试时,我注意到ie9正在做一些事情
非常
很奇怪。我在div元素中有一个<script>块,当我使用node.clonenode(true)深入克隆该div元素,并使用document.body.appendchild或document.body.insertbefore将克隆附加到文档的某个位置时,克隆的<script>块将再次执行!没有其他浏览器显示这种行为。
如果我没有弄错,<脚本>块在文档最初加载后附加到文档时不应该执行,对吗?如果我是对的,这是IE9的一个错误吗?
这里是一个简单的html文档,您可以在其中看到这种行为的实际操作。使用此代码创建一个HTML文档,并使用IE9仿真在Internet Explorer中加载它。你应该看到一个弹出的警告,上面写着“嘿”。接下来,点击“点击我”按钮,你会看到同样的弹出窗口再次执行!
<!DOCTYPE html>
<html>
<head>
<title>IE9 Script Tag Bug Test</title>
<script>
function ButtonClick(){
var Elem = document.getElementById('mydiv');
var ElemClone = Elem.cloneNode(true);
document.body.insertBefore(ElemClone,Elem);
}
</script>
</head>
<body>
<div id="mydiv">
This is a DIV.
<script>
alert("hey");
</script>
</div>
<button onclick="ButtonClick();">Click Me</button>
</body>
</html>