gpt4 book ai didi

javascript - Document.querySelector 返回 null 直到使用 DevTools 检查元素

转载 作者:行者123 更新时间:2023-12-01 16:09:43 25 4
gpt4 key购买 nike

我正在尝试创建一个 Chrome 扩展程序,可以在 Facebook 上找到“赞助”帖子并将其删除。
在执行此操作时,我注意到 Facebook.com 上 Google Chrome 的这种相当奇怪的行为,其中对现有元素的某些类型的查询(在我的例子中为 document.querySelector('a[href*="/ads/about"]');)将返回 null .但是,如果您“检查”-单击它们(使用检查工具或 CTRL+SHIFT+C),它们将显示在 DevTools 中,然后在控制台中再次运行查询将显示该元素。无需对页面进行任何滚动、移动、调整大小或任何操作。
这可以使用上面的说明轻松复制,但为了清楚起见,我制作了以下视频,准确显示了奇怪的行为:
https://streamable.com/mxsf86
这是某种 dom 查询缓存问题吗?你有没有遇到过类似的事情?谢谢
编辑:问题现在已减少为返回 null 的查询直到元素悬停,这不再是与 DevTools 相关的问题。

最佳答案

正如已经注意到的,赞助商链接在某些鼠标事件发生之前根本不在其位置。一旦鼠标事件发生,元素就会被添加到 DOM 中,据说这就是 Facebook 避免人们太容易抓取它的方式。
因此,如果您想找到赞助商链接,那么您需要执行以下操作

  • 找出导致添加链接的确切事件
  • 进行实验,直到您发现如何以编程方式生成该事件
  • 实现一个爬行算法,在墙上长时间滚动,然后引发给定的事件。那时您可能会获得许多赞助链接

  • 注意:赞助链接由公司支付,如果他们的广告位被不感兴趣的机器人用完,他们不会很高兴。

    关于javascript - Document.querySelector 返回 null 直到使用 DevTools 检查元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63621540/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com