相关疑难解决方法(0)

使用JavaScript模拟tab键

我希望浏览器的行为就像用户点击某些内容时按Tab键一样.在点击处理程序中,我尝试了以下方法:

var event = document.createEvent('KeyboardEvent');
event.initKeyEvent("keypress", true, true, null, false, false, false, false, 9, 0);
this.input.focus()[0].dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)

和jQuery:

this.input.focus().trigger({ type : 'keypress', which : 9 });
Run Code Online (Sandbox Code Playgroud)

......我从这里拿走.

第一种方法似乎是最好的选择,但并不是很有效.如果我将最后两个参数更改为98,98,确实在输入框中输入了'b'.但是,9,0和9,9(前者我从MDC网站上取得的)都在FF3下的firebug中给我这些错误:

Permission denied to get property XULElement.popupOpen
[Break on this error] this.input.focus()[0].dispatchEvent(event);

Permission denied to get property XULElement.overrideValue
[Break on this error] this.input.focus()[0].dispatchEvent(event);

Permission denied to get property XULElement.selectedIndex
[Break on this error] this.input.focus()[0].dispatchEvent(event);

Permission denied to set property XULElement.selectedIndex
[Break on this error] this.input.focus()[0].dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)

我听说过(没有明确定义'此类')事件是"不可信的",这可能解释了这些错误.

第二种方法导致我作为event.which传递的任何值作为event.which,但没有效果(即使我使用98而不是9,在框中没有输入'b'.)如果我尝试设置事件在我传递的对象中的.data,当事件被触发时它最终未定义.以下是我用来查看的代码:

$('#hi').keypress(function(e) {
  console.log(e); …
Run Code Online (Sandbox Code Playgroud)

html javascript keyboard jquery events

21
推荐指数
1
解决办法
4万
查看次数

如何在 React onClick 中模拟键盘事件?

我目前正在使用 React 为我的 Web 应用程序开发屏幕处理程序,并且在为屏幕键上的退格键和箭头创建事件时遇到一些问题。

我有这样的布局

在此输入图像描述

我正在查看一些使用 jquery 的问题,但我也遇到了多个 SO 问题,这些问题说由于 React 使用虚拟 DOM 概念,因此将 jquery 与 React 一起使用是一种不好的做法。

如何在文本字段上触发退格键?

如何将 JQuery 与 ReactJS 结合使用

如何使用 React 或纯 JS 模拟屏幕控件中的退格键和左右箭头按钮的事件。

更新

我不想根据按键触发屏幕按钮,反之亦然。我想单击屏幕按钮,该按钮会自动触发键盘按下事件,并在输入时执行必要的事件。

javascript reactjs

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

标签 统计

javascript ×2

events ×1

html ×1

jquery ×1

keyboard ×1

reactjs ×1