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

71 天前
 waiaan

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

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

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

请问这是什么原因?

谢谢。

1614 次点击
所在节点    前端开发
13 条回复
zloong
71 天前
发下网址看看
waiaan
71 天前
@zloong

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

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

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

我要获取的元素还真是 iframe 嵌的,为什么在点击 main 元素展开后可以获取到?
mrbunker
71 天前
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
71 天前
@waiaan #9 这就对了 你去搜下吧 iframe 首次就获取不到
AtlantaANiu
71 天前
发截图,除了 shadow dom ,没有猴子拿不到的元素
superhuai11
71 天前
记得加个 延迟,spa 或者 iframe 加载应该都需要时间,先试试 1s

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1068920

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX