js 小白,请教一下为什么网页上的播放器, Chrome 控制台不能用 querySelector 直接获取到呢

1 天前
 linyuzhou

想给一个网课网站加一个自动调整播放速度的小插件,按照之前的一些粗浅的经验,从审查元素里复制 JS 路径,然后就可以在控制台或者 extension 里获取到播放器这个元素了

video = document.querySelector("#vidplayer > video")

大概像这样。但是发现这个网站很神奇的一点是,如果打开新网页直接在控制台输入这句命令,是获取不到 video 的,必须先经过审查元素的这一步,才能在控制台里获取到。

体感上这像是只有进入审查元素了,才会动态生成相关元素,但是进入之前也能使用播放功能,感觉非常神奇。请问有没有老哥懂得这是什么原因呢

对 js 接触得很浅,可能是很粗浅的问题,希望大家不吝赐教

714 次点击
所在节点    JavaScript
5 条回复
Y25tIGxpdmlk
1 天前
看我图片,我猜是这里,播放页面采用的是 iframe 框架,然后你审查元素点击以后,会默认切换到对应的那个框架中去了。

duanxianze
1 天前
不要搞哦 老老实实的挂着,很容易被检测出来作弊然后挂科的,我上大学那会就有因为这个错失奖学金的
linyuzhou
1 天前
@Y25tIGxpdmlk 谢谢老哥,但是图片好像看不到😢
linyuzhou
1 天前
@Y25tIGxpdmlk 但老哥你说的应该是对的,感谢!我查询之后尝试了一下

```javascript
iframe = document.querySelector("iframe")
video = iframe.contentDocument.querySelector("video")
```

就可以正确获取到 video 元素了
linyuzhou
1 天前
@duanxianze 谢谢提醒!不过 2 倍速这个功能是播放器本身也提供的,我只是把每次手动调整改成自动修改,应该问题不大

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

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

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

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

© 2021 V2EX