getElementById仅在刷新页面后才起作用

时间:2010-10-28 16:16:22

标签: javascript firefox firebug

我正在尝试访问google.co.uk结果页面中的结果div。 使用firebug可以看到div的id是“res”但由于某种原因getElementById('res')失败。使事情变得更奇怪 - 如果我刷新页面(F5或ctrl + F5),该功能会成功。

另外,如果我查看结果页面的源代码,我看不到任何看起来像firebug中描述的DOM。

为什么会发生这种情况,如何确保getElementById('res')成功完成用户的任何刷新。

感谢。

编辑:我添加一个简短的代码来简化问题。在google.co.uk中查询后,页面重定向并且警报“正在工作”弹出,但第二个警报没有。 在刷新之后,两个警报都会弹出,尽管第二个提示0表示不正确 因为根据萤火虫DOM,div有孩子。

p.s:我也没有提到我使用greasmonkey

(function() {
alert('working');
var results = document.getElementById('res');
alert(results.childNodes.length);
})();

1 个答案:

答案 0 :(得分:0)

window.addEventListener("DOMContentLoaded", function () {
    var results = document.getElementById('res');
    alert(results.childNodes.length);
}, false);