相关疑难解决方法(0)

在JavaScript中触发键盘事件

我正在尝试使用JavaScript在Safari中模拟键盘事件.

我试过这个:

var event = document.createEvent("KeyboardEvent");
event.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 115, 0);
Run Code Online (Sandbox Code Playgroud)

......还有这个:

var event = document.createEvent("UIEvents");
event.initUIEvent("keypress", true, true, window, 1);
event.keyCode = 115;
Run Code Online (Sandbox Code Playgroud)

但是,在尝试这两种方法之后,我遇到了同样的问题:在执行代码之后,事件对象的keyCode/ whichproperties设置为0,而不是115.

有谁知道如何在Safari中可靠地创建和发送键盘事件?(如果可能的话,我宁愿用纯JavaScript实现它.)

javascript safari webkit keyboard-events dom-events

73
推荐指数
4
解决办法
16万
查看次数

使用支持 Shadow DOM 的纯 JavaScript 模拟 Tab 键按下

注意:这里和其他地方都存在现有问题,但它们都是特定于 jQuery 的,并且没有涵盖纯 JavaScript 的规范答案,包括对 Web 组件的支持。

我想模拟按 Tab 键,以便焦点转移到 Tab 键顺序中的下一个元素。下一个元素可以是任何 HTML 可聚焦的 HTML 元素或带有tabindex="0". 这也需要在某些后代 HTML 元素可能是具有影子 DOM 的自定义 Web 组件的情况下起作用。

潜在的解决方案可能是触发按键事件或迭代后代节点以寻找可聚焦的节点。

javascript tabindex web-component focusable shadow-dom

11
推荐指数
1
解决办法
7031
查看次数

替换IE 11中的keyCode

我们使用此代码TabEnter密钥模拟密钥:

function EnterTab() {
    if (event.keyCode == 13) event.keyCode = 9;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

但在IE 11中keyCode读取此代码不起作用.如何解决我的代码在IE 11中运行的问题?

javascript jquery internet-explorer-11

5
推荐指数
1
解决办法
9944
查看次数