我们一直在我们的工作场所讨论这个问题,其中一些反对行为,一些反对行为.想听听你们的意见:
Test!
上述脚本应该工作并执行它应该做的事情吗?首先,让我们看看这里发生了什么:
我有一个javascript在 现在,上面的脚本在Firefox,Opera和IE8中运行良好.但IE6和IE7发出警告说他们无法打开页面. 我们不讨论IE应该如何处理这个问题(他们已经将其视为一个bug,因此在IE8中修复了它).这里的要点是因为'SCRIPT'标签本身是DOM的一部分,是否允许它做这样的事情?这样的手术后是否应该存在? 编辑: 如果我运行上面的代码,Firefox,Opera,IE9等不会删除'script'标记.但是,document.getElementsByTagName('script').length返回0! 要理解我的意思,请在上面的代码中添加 例如,自我移除可以很方便的一个例子是一些长的轮询技术,这些技术肯定会在几分钟后使DOM变大. JavaScript框架添加和删除脚本元素作为日常例程的一部分. 例如, 他们这样做是为了保持DOM清洁 - 否则标签会不必要地积累.评估后不再需要它们. 我看到的唯一缺点是调试 - 例如,带有Firebug的Firefox似乎丢失了这些脚本的下落,无法找到源代码行.(撰写本文时) 如果问题是"应该允许脚本标记自行删除吗?" 我想是的.毕竟,脚本标记可以使浏览器导航到另一个页面,在这种情况下,整个页面(包括这样的脚本标记)将从内存中删除. 实际上你可以这样做:alert(document.getElementsByTagName('script').length);
前后document.body.removeChild(document.getElementsByTagName('div')[0]);
.
1> Andras Vass..:getScript()
在jQuery中,在文档头中放置一个脚本标记,并在评估后立即将其删除.
2> Will..:
3> 小智..:var currentScript;
currentScript = document.currentScript || document.scripts[document.scripts.length - 1];
currentScript.parentNode.removeChild(currentScript);
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有