[英]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.