上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

求解如何屏蔽网页原有快捷键

[复制链接]
  • TA的每日心情
    开心
    2023-5-6 12:23
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    3

    主题

    7

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2023-1-2 10:52:55 | 显示全部楼层 | 阅读模式
    这个长按0键3倍速的脚本如下,只能在和原网页快捷键不冲突的情况下实现,假如键值为arrowright就会和播放器的长按一直快进5秒冲突,不知道怎么实现先屏蔽网页原有的快捷键设置,然后单击arrowright快进5秒,长按3倍速度,松手1倍速度,和b站web逻辑一样
  • TA的每日心情
    开心
    2023-5-6 12:23
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    3

    主题

    7

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2023-1-2 10:53:17 | 显示全部楼层
    (function() {
        'use strict';
        var speed=1;
        var a_speed=3;

        document.onkeydown=function(e){//对整个页面监听

        var keyNum=window.event ? e.keyCode :e.which;//获取被按下的键值

        if(keyNum==96){
            if(document.querySelector('video')){
            if(document.querySelector('video').playbackRate!=a_speed){
            speed=document.querySelector('video').playbackRate;
            }
            document.querySelector('video').playbackRate = a_speed;
            }
        }
        }
        document.onkeyup=function(e){//对整个页面监听
        var keyNum=window.event ? e.keyCode :e.which;//获取被按下的键值
        if(keyNum==96){
            if(document.querySelector('video')){
            document.querySelector('video').playbackRate = speed;
            }
        }
        }
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1361

    积分

    荣誉开发者

    积分
    1361

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-1-2 12:56:35 | 显示全部楼层
    在事件捕获阶段stopImmediatePropagation:https://developer.mozilla.org/zh ... mmediatePropagation
    1. let holding = 0;
    2. window.addEventListener('keydown', e => {
    3.     const video = document.querySelector('video');
    4.     if (e.key === 'ArrowRight' && video) {
    5.         e.stopImmediatePropagation();
    6.         holding++;
    7.         if (holding > 1) {
    8.             video.playbackRate = 3;
    9.         }
    10.     }
    11. }, true);
    12. window.addEventListener('keyup', e => {
    13.     const video = document.querySelector('video');
    14.     if (e.key === 'ArrowRight' && video) {
    15.         e.stopImmediatePropagation();
    16.         if (holding > 1) {
    17.             video.playbackRate = 1;
    18.         } else {
    19.             video.currentTime += 5;
    20.         }
    21.         holding = 0;
    22.     }
    23. }, true);
    复制代码
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-5-6 12:23
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    3

    主题

    7

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2023-5-5 20:31:58 | 显示全部楼层
    cxxjackie 发表于 2023-1-2 12:56
    在事件捕获阶段stopImmediatePropagation:https://developer.mozilla.org/zh-CN/docs/Web/API/Event/stopI ...

    感谢大佬
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表