V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
linyuzhou
V2EX  ›  JavaScript

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

  •  
  •   linyuzhou · 4 天前 · 841 次点击

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

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

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

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

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

    5 条回复    2024-12-24 16:13:57 +08:00
    Y25tIGxpdmlk
        1
    Y25tIGxpdmlk  
       4 天前   ❤️ 1
    看我图片,我猜是这里,播放页面采用的是 iframe 框架,然后你审查元素点击以后,会默认切换到对应的那个框架中去了。

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

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

    就可以正确获取到 video 元素了
    linyuzhou
        5
    linyuzhou  
    OP
       4 天前
    @duanxianze 谢谢提醒!不过 2 倍速这个功能是播放器本身也提供的,我只是把每次手动调整改成自动修改,应该问题不大
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1221 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:00 · PVG 08:00 · LAX 16:00 · JFK 19:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.