javascript - 是否应允许 "script"标签自行删除?

标签 javascript internet-explorer dom

我们一直在我们的工作场所就此进行讨论,有人赞成也有人反对。想听听你们的意见:

<html>
<body>
<div>
Test!
<script> document.body.removeChild(document.getElementsByTagName('div')[0]); </script>
</div>
</body>
</html>

上面的脚本应该工作并做它应该做的事吗?首先,让我们看看这里发生了什么:

我在 <div> 中有一个 javascript元素。此 javascript 将删除 body 中的子节点,该子节点恰好包含脚本本身所在的 div。

现在,上面的脚本在 Firefox、Opera 和 IE8 中运行良好。但是IE6和IE7提示无法打开页面。

让我们不要讨论 IE 应该如何处理这个问题(他们已经接受它作为一个错误,因此在 IE8 中修复了它)。这里的重点是因为'SCRIPT' 标签本身是DOM 的一部分,它应该被允许做这样的事情吗?在这样的操作之后它还应该存在吗?

编辑:

如果我运行上面的代码,Firefox、Opera、IE9 等不会删除“脚本”标签。但是,document.getElementsByTagName('script').length 返回 0!

要理解我的意思,请添加 alert(document.getElementsByTagName('script').length);前后document.body.removeChild(document.getElementsByTagName('div')[0]);在上面的代码中。

最佳答案

如果问题是,“是否应该允许脚本标签自行删除?”我会这么认为。毕竟,脚本标签可以使浏览器导航到另一个页面,在这种情况下,整个页面(包括此类脚本标签)将从内存中删除。

关于javascript - 是否应允许 "script"标签自行删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2486144/

相关文章:

javascript - 从 SuiteScript 的下拉菜单中选择一个选项后,如何使文本框出现?

php - jQuery $.ajax 请求在 Internet Explorer 中收到错误响应

javascript - Bootstrap 样式不适用于 IE

javascript - 使用 jquery 构造 DOM 元素

javascript - 实例化多个 Mootools 类的性能开销

javascript - childNode 意外行为

javascript - 我的密码生成功能效率低下吗?

javascript - 为 three.js 场景创建缩略图

css - 加载条件样式表是否会导致额外的服务器请求

Javascript onmouseover 不会在 IE 中触发