相关疑难解决方法(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万
查看次数

iPad,JavaScript字符代码和shiftKey

假设每次用户按下ID为"txt"的textarea中的键时,我都会调用以下jQuery的Web应用程序:

$('#txt').keydown(function(e) {
console.log(e.which); // shows the keyCode
console.log(e.shiftKey);
}
Run Code Online (Sandbox Code Playgroud)

在桌面浏览器上,对于像(和这样的字符9,我可以通过检查是否按住shift键来区分两者(使用e.shiftKey).但是,在Safari for iPad中,键入这些字符不需要Shift键.因此,例如,按下iPad键盘上的两个键(9在keyCode的控制台中记录"57".为e.shiftKey记录的值始终显示为false.

我如何能够可靠地区分在iPad上键入移位字符?提前致谢!

javascript mobile-safari keyboard-events ipad

6
推荐指数
1
解决办法
2513
查看次数

在智能手机上检测大写

我想检测智能手机上的大写字母,它们有一个小箭头,基本上是一个大写字母。

我尝试搜索它,我所能做的就是如何在台式机上进行搜索,即:

$('input').keypress(function(e) { 
  var s = String.fromCharCode( e.which ); 
  if ( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey ) { 
    alert('caps is on');
  }
});
Run Code Online (Sandbox Code Playgroud)

但这在智能手机上不起作用,我怎么能实现甚至有可能呢?

jquery

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