Javascript keyCode和哪些是不推荐使用的-那么为什么不起作用呢?

Javascript keyCode和哪些是不推荐使用的-那么为什么不起作用呢?,javascript,events,dom-events,keyboard-events,Javascript,Events,Dom Events,Keyboard Events,根据和执行键和代码,而不推荐使用键和代码 考虑到这一点,我应该能够发送keydown事件,如下所示: document.dispatchEvent( new KeyboardEvent("keydown", { key: 'K', code: 'KeyK', shiftKey: false, ctrlKey: false, metaKey: false }) ); 不幸的是,如果

根据和执行键和代码,而不推荐使用键和代码

考虑到这一点,我应该能够发送
keydown
事件,如下所示:

document.dispatchEvent(
    new KeyboardEvent("keydown", {
        key: 'K',
        code: 'KeyK',
        shiftKey: false,
        ctrlKey: false,
        metaKey: false
    })
);
不幸的是,如果我添加keyCode,这个脚本就无法正常工作。具有键代码的对象:

document.dispatchEvent(
    new KeyboardEvent("keydown", {
        key: 'K',
        code: 'KeyK',
        keyCode: 75,
        shiftKey: false,
        ctrlKey: false,
        metaKey: false
    })
);
我错过什么了吗keyCode不推荐使用,因此应该可以在没有这些元素的情况下创建工作事件。我找不到任何答案

我正在使用Google Chrome(87)的当前版本。我通过向YouTube发送k键以播放/暂停视频来测试此脚本。

文档中的“已弃用”状态告诉您,您不应该依赖于您收到的事件中存在的这些属性,因为浏览器开发人员正计划停止将它们包含在他们创建的事件中

但是,在本例中,您模拟的是浏览器在创建事件时通常执行的代码部分。您和浏览器都无法知道接收该事件的代码将查找什么

如果您忽略了不推荐使用的属性,那么您正在模拟未来的浏览器,并且您正在测试的YouTube站点当前可能还没有准备好与未来的浏览器一起使用。最好设置当前浏览器为该事件设置的所有属性


请注意,YouTube的开发者虽然最终与Chrome的开发者受雇于同一家公司,但他们之间可能没有什么联系。他们将像任何运行良好的开发团队一样,定期更新代码以遵循当前的最佳实践,但这需要时间,并且必须优先考虑他们正在处理的所有事情。

可能他们的代码正在查找键码而不是键。
keydown
事件调度实际上不会触发键盘上的键控。@epascarello make sens。如果他们不久前添加了键和代码,我认为他们还改进了youtube的代码,因为keycode已经被弃用了。你需要和他们的开发人员谈谈;)不推荐的东西不会消失。这有点像有人说“不要那样做”: