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已经被弃用了。你需要和他们的开发人员谈谈;)不推荐的东西不会消失。这有点像有人说“不要那样做”: