Pony548 发表于 2025-3-18 14:59:34

各位怎么修改抖音快捷键

我想修改抖音快捷键,功能如下:

* e→上个视频
* s→视频进度后退
* d→下一个视频
* f→上一个视频
* w→打开作者主页
* t→网页全屏

我参考别人写的代码如下

esd 都实现了,不过有时候不加载,按f还是抖音默认的功能,无法修改,请大神帮忙看一看

```javascript
// ==UserScript==
// @name         抖音-快捷键
// @namespace    http://tampermonkey.net/
// @icon         https://p-pc-weboff.byteimg.com/tos-cn-i-9r5gewecjs/favicon.png
// @version      8.8.8
// @description修改抖音默认快捷键,适用于 esdf 选手
// @author       Leiyi548
// @match       https://www.douyin.com/*
// @run-at       document-idle
// ==/UserScript==

/*
E:上一个视频
D:下一个视频
S:后退
F:前进
T:网页全屏
Alt+V:评论区下滑
Ctrl+Alt+V:评论区上滑
*/

(function() {
    'use strict';
    console.log('[抖音快捷键] 启动!');

    // 抖音快捷键 定义一个对象来映射 keyCode 到要模拟的按键名称
    const keyCodeMap = {
      // D 键
      68: 'Down',
      // E 键
      69: 'Up',
      // S 键
      83: 'Left',
      // F 键
      70: 'Right',
      // T 键
      84: 'y',
    };

    document.onkeydown = function (ev) {
      const event = ev || window.event;
      const keyToSimulate = keyCodeMap;
      if (keyToSimulate) {
            simulateKeyPress(keyToSimulate);
      }
    };

    // 模拟按键
    function simulateKeyPress(key) {
      console.log(key)
      // 按键映射配置
      const keyMap = {
            y: { key: 'y', code: 'KeyY', keyCode: 89 },
            x: { key: 'x', code: 'KeyX', keyCode: 88 },
            left: { key: 'ArrowLeft', code: 'ArrowLeft', keyCode: 37 },
            up: { key: 'ArrowUp', code: 'ArrowUp', keyCode: 38 },
            right: { key: 'ArrowRight', code: 'ArrowRight', keyCode: 39 },
            down: { key: 'ArrowDown', code: 'ArrowDown', keyCode: 40 },
      };

      // 统一转换为小写并获取配置
      const config = keyMap;
      if (!config) {
            console.error(`Unsupported key: ${key}. 按键未映射`);
            return;
      }

      const event = new KeyboardEvent('keydown', {
            key: config.key,
            code: config.code,
            keyCode: config.keyCode, // 兼容旧版
            which: config.keyCode,    // 兼容旧版
            bubbles: true,            // 允许事件冒泡
            cancelable: true,         // 允许阻止默认行为
            composed: true,         // 穿透Shadow DOM
            shiftKey: config.shiftKey || false // 设置Shift键状态
      });
      document.dispatchEvent(event);
    }

    // 获取评论区元素
    if (commentArea) {
      // 监听键盘按下事件
      document.addEventListener('keydown', function (event) {
            // 定义滚动步长
            const scrollStep = 50;

            // 按下向上箭头键,向上滚动
            if (event.keyCode === '75') {
                const commentArea = document.querySelector('.comment-mainContent');
                event.preventDefault(); // 阻止默认行为
                commentArea.scrollTop -= scrollStep;
            }

            // 按下向下箭头键,向下滚动
            if (event.keyCode === '74') {
                const commentArea = document.querySelector('.comment-mainContent');
                event.preventDefault(); // 阻止默认行为
                commentArea.scrollTop += scrollStep;
            }
      });
    }
})();
```
页: [1]
查看完整版本: 各位怎么修改抖音快捷键