Tampermonkey脚本中的getElementsByTagName的缠结行为

时间:2019-11-16 17:00:17

标签: javascript tampermonkey

我的目标: 我有一个非常复杂的网页,可以从中提取一些信息。 该信息包含在div中。但是div没有名称,页面上也有不计其数的div。

我发现,该页面只有七个,第二部分包含了我要搜索的div。好的,这样的tampermonkey脚本应该可以工作:

allSection = document.getElementsByTagName('section');
console.log ("First Section", allSection );
console.log ("Length All Section", allSection.length);

当我打印getElementByTagname的结果时,它有七个部分(按预期)。 Chrome控制台以非常漂亮的prittyprint显示HTMLCollection。我可以在那找到我的信息。

但下一行已经说过,HTMLCollection只有1个元素长

甚至陌生人: 我可以使用allSection [0]访问第一个部分,而不能使用allSection [1]访问第二个部分。 这与打印的长度(1)一致,但与打印的HTMLCollection不一致。

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

抱歉,答案很简单。

我要查找的元素尚未加载。 它们来自AJAX调用。所以基本上,当脚本 正在运行,元素不存在。 当我查看chrome控制台时,元素存在并且该控制台 能够向他们展示。

解决方案: 我有一个粗略的解决方案,等待了几毫秒 直到元素被加载:

setTimeout(function(){},2000);