我正在尝试使用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实现它.)
假设每次用户按下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上键入移位字符?提前致谢!
我想检测智能手机上的大写字母,它们有一个小箭头,基本上是一个大写字母。
我尝试搜索它,我所能做的就是如何在台式机上进行搜索,即:
$('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)
但这在智能手机上不起作用,我怎么能实现甚至有可能呢?