gpt4 book ai didi

javascript - Android 浏览器中某些键没有按键事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:03:46 24 4
gpt4 key购买 nike

以下代码在 Chrome、Firefox、iPhone 甚至 Android 上的第三方浏览器中都能完美运行。但是,当在本地浏览器中运行时,我的瑞典语键盘上的 Å、Ä 和 Ö 等特殊字符键事件根本不会被触发。

这个例子应该只允许用户一次输入一个字符。就像一个魅力,除非我在 android 中按下 Å、Ä 或 Ö 等键,我可以输入任意数量的字符。

这里有一个 jsFiddle 供任何想尝试的人使用:http://jsfiddle.net/x7H6f/ .如果你的键盘上没有像我的瑞典语那样的特殊键,像 é(按住 E)这样的字符应该可以完成“技巧”。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Key Event test</title>
</head>
<body>
<input type="text" id="a" name="test" />
<script>
document.getElementById("a").onkeypress = function(e) {
e = e || window.event;
var k = e.keyCode || e.which;
this.value = String.fromCharCode(k);
return false;
}
</script>
</body>
</html>

不,keydown 和 keyup 也不起作用。我错过了什么,或者这是一个错误?在 PhoneGap 中开发瑞典应用程序时非常烦人!

谢谢!


编辑:正如 Manor 在他的回答中所说,可以使用 input 事件。这是一个演示 keypressinputchange 事件之间差异的 fiddle :http://jsfiddle.net/Qxd76/ (使用 http://jsfiddle.net/Qxd76/show 在智能手机上查看结果)。

最佳答案

我刚刚花了很多时间来解决这个问题。我正在学习希伯来语,所有希伯来语宪章都不适合我。

我找到了解决方案,我会在之前给出简短的解释

当使用所有键事件时,浏览器会搜索您按下的键。由于某种原因,Android native 浏览器中所有其他语言的英文章程都是未知的,这就是为什么在您填写输入章程时不会触发任何事件的原因。

解决方案是在输入中而不是键上搜索事件。例如,如果我们在文本输入中有 .change() 方法对我们来说会很棒。

我在 addEventListener() 方法中使用并且非常有效。

这是代码

var exmpleInput = document.getElementById('input-id');
if(exmpleInput) {
exmpleInput.addEventListener("input", function() {
exampleFunction(this)
}, false);
}

关于javascript - Android 浏览器中某些键没有按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9302986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com