我有一个chrome扩展程序,可以从ebay订单页面检索所有订单,
在过去的一个月中,它运行良好,但是现在突然无法访问某些元素。

让elGridComp = document.getElementsByClassName(“ table-grid-component”);
    让elOrders = elGridComp [0] .childNodes [2] .childNodes; // elOrders具有所有元素(示例中为105)

elOrders [0] .getAttribute(“ class”); //工作

elOrders [2] .getAttribute(“ class”); //抛出异常

例如,elOrders 0、1、3、5将返回类的属性,但是2、4和7将引发异常
未捕获的TypeError:elOrders [i] .getAttribute不是一个函数。
随附的照片显示了elOrders中的一些最初元素
javascript - 无法通过chrome扩展程序上的javascript访问ebay网站上的元素-LMLPHP

谢谢

最佳答案

错误消息表示elOrders[2]不具有getAttribute函数,如果该节点不是HTML元素而是文本节点(Chrome的devtools如果全部为空格,crbug.com/823106则不显示此类节点)或注释节点,则可能会发生。

解决方案是使用children,因为它仅返回不同于childNodes的元素,而elOrders[i]返回所有类型的节点。

附言使用devtools设置一个断点并检查数据的实际内容。您甚至可以选择表达式的一部分,然后将鼠标悬停以查看其值,例如,如果选择,则将看到其属性。

关于javascript - 无法通过chrome扩展程序上的javascript访问ebay网站上的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61538487/

10-09 20:58