【发布时间】:2013-06-03 12:04:52
【问题描述】:
希望问题的标题清楚,但是:
发生以下情况时会发生什么:
<div id="parent">
<img src="..." id="myImage"/>
</div>
<script>
var i=document.getElementById('myImage');
document.getElementById('parent').innerHTML='';
// variable i should not be 'undefined' right? chrome debugger says nope!
</script>
我已经在 chromes 调试器中对此进行了测试,似乎即使在 DOM 对象不再存在之后,引用仍然“存在”...我正确吗?执行 console.log(i)(对于上面的示例),仍然返回对象及其所有属性......垃圾收集器是否应该启动并“未定义”这个引用,因为它不再存在于 DOM 中?
有谁知道除了 chrome 之外的其他浏览器(更具体地说,IE6...)如何处理类似的事情?
我问的原因是因为我们全局存储了一些引用(取决于用户操作),以供用户稍后执行另一个操作时使用......而且我们基本上需要一种方法来测试 DOM 对象是否仍然存在还是不..
我创建了一个小 jsfiddle 来让一切变得清晰:http://jsfiddle.net/9HCKt/
谢谢。
更新:我现在看到的问题不是很清楚...我如何测试以查看该对象是否仍以跨浏览器兼容的方式存在于 DOM 中?
【问题讨论】:
标签: javascript dom reference garbage-collection innerhtml