【问题标题】:Disabling YouTube's drag down for miniplayer functionality为迷你播放器功能禁用 YouTube 的下拉功能
【发布时间】:2021-10-29 12:18:09
【问题描述】:

如果我观看 YouTube 视频并尝试向下拖动播放器,它会这样做:

有时它不会这样做。有时它只在全屏模式下执行此操作。有时它也在剧院模式下这样做。它是在不久前开始发生的。

我试过了 document.addEventListener('mousemove', (e) => { e.stopImmediatePropagation(); e.stopPropagation(); e.preventDefault();}, true) 在 Tampermonkey 中,但它禁用了除 miniplayer 的向下拖动之外的所有其他鼠标移动。我试过user-select: none,但也没有解决这个问题。

我已尝试在隐身模式下禁用扩展程序。没有任何帮助。

我正在运行最新的 Chrome。 95.0.4638.54

由于某种原因,这在 Chromium 中不会发生:版本 94.0.4606.81

我不是唯一一个遇到这个问题的人:https://www.reddit.com/r/youtube/comments/l4falt/is_there_a_way_to_turn_off_the_drag_down_to/

我还没有找到任何关于它的其他论坛帖子。

有没有办法禁用这个功能?

更新:此代码似乎有效:https://pastebin.com/n093g9Ur

【问题讨论】:

    标签: javascript youtube


    【解决方案1】:

    有点难,但要解决这个问题:

    1. 首先需要找到监听触发此行为的用户事件的元素,方法是在 YouTube 播放器的元素上使用 Ctrl-Shift-C,然后在其父元素的 CSS 中添加“pointer-events: 'none'” ,直到它禁用此功能。
    2. 可以选择监听事件的元素 document.querySelector('ytd-page-manager #player-container');(它 原来有多个带有player-container id 的元素 YouTube)。
    3. 然后我们通过在 Chrome 开发者控制台中键入“getEventListeners(temp1)”来获取该元素的事件监听器(其中 temp1 是“ytd-page-manager #player-container”元素,右键单击并选择“store as a global变量”)
    4. 然后我们使用 Capture:true 添加我们自己的事件侦听器并停止这些事件的立即传播(对于“pointerdown”事件就足够了)

    所以页面加载后代码会是

    const container = document.querySelector('ytd-page-manager #player-container');
    console.log(container)
    container.addEventListener('pointerdown', (e) => {
        console.log(e.currentTarget);
        e.stopImmediatePropagation();
    }, true)
    
    

    我们将“true”添加到事件侦听器以使用 Capture(“一个布尔值,指示此类型的事件将在被分派到 DOM 树中它下面的任何 EventTarget 之前被分派到已注册的侦听器”——@987654321 @)。

    【讨论】:

    猜你喜欢
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    相关资源
    最近更新 更多