V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waiaan
V2EX  ›  前端开发

针对某个网站写油猴脚本时获取不到 dom 元素

  •  
  •   waiaan · 20 天前 · 1420 次点击

    等页面完全加载后,打开开发者工具,“元素”面板显示的 dom 结构大致如下:

    <html lang="en">
      <head>
      </head>
      <body>
      	<main id="main">...</main>
      </body>
    </html>
    

    此时还没有点击展开 main 标签,在控制台无法获取 main 标签下所有的子元素(空集合或 null ),只有点击展开 main 标签后,才能获取到它下面的子元素。

    请问这是什么原因?

    谢谢。

    13 条回复    2024-08-30 10:33:29 +08:00
    zloong
        1
    zloong  
       20 天前
    发下网址看看
    waiaan
        2
    waiaan  
    OP
       20 天前
    @zloong

    怕有广告嫌疑,要不私信你?
    waiaan
        3
    waiaan  
    OP
       20 天前
    @zloong

    忘了没私信功能
    paopjian
        4
    paopjian  
       20 天前
    点开之前开发者工具里能看到 main 里面有全部内容吗?
    waiaan
        5
    waiaan  
    OP
       20 天前
    @paopjian

    刚打开开发者工具的时候, “元素”面板里的 main 标签是收起的,此时获取不到它里面的 dom 元素,点击 main 标签的箭头将其展开后才能获取到。
    shizhibuyu2023
        6
    shizhibuyu2023  
       20 天前
    控制台可能有些隐藏功能。但页面上有展示的话,我不信在 content script 都拿不到,还能重写了 DOM 原型链不成👀
    hkiJava
        7
    hkiJava  
       20 天前
    @waiaan #2 base64 加密就行了
    liudewa
        8
    liudewa  
       20 天前
    看看是不是 iframe 嵌入
    waiaan
        9
    waiaan  
    OP
       19 天前
    @liudewa

    我要获取的元素还真是 iframe 嵌的,为什么在点击 main 元素展开后可以获取到?
    mrbunker
        10
    mrbunker  
       19 天前   ❤️ 1
    https://learn.scriptcat.org/%E5%AE%9E%E7%94%A8%E7%9F%A5%E8%AF%86%E5%BA%93/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/

    可以看下这篇文章,里面有常见的几种获取不到元素的应对方法
    liudewa
        11
    liudewa  
       19 天前   ❤️ 1
    @waiaan #9 这就对了 你去搜下吧 iframe 首次就获取不到
    AtlantaANiu
        12
    AtlantaANiu  
       19 天前
    发截图,除了 shadow dom ,没有猴子拿不到的元素
    superhuai11
        13
    superhuai11  
       19 天前   ❤️ 1
    记得加个 延迟,spa 或者 iframe 加载应该都需要时间,先试试 1s
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5585 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:40 · PVG 09:40 · LAX 18:40 · JFK 21:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.