繁体   English   中英

Tampermonkey 脚本中 getElementsByTagName 的异常行为

[英]Stange behaviour with getElementsByTagName in Tampermonkey script

我的目标:我有一个相当复杂的 web 页面,我想从中提取一些信息。 信息包含在一个 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 不一致。

任何想法?

抱歉,答案很简单。

我正在寻找的元素尚未加载。 它们是由 AJAX 调用产生的。 所以基本上,当脚本运行时,元素不存在。 当我查看 chrome 控制台时,元素存在并且控制台能够显示它们。

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

设置超时(函数(){},2000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM