以下代码适用于Chrome,Firefox,iPhone,甚至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>
Run Code Online (Sandbox Code Playgroud)
不,keydown和keyup也不起作用.我错过了什么,或者这是一个错误?在PhoneGap中开发瑞典应用程序时非常烦人!
谢谢!
编辑:
正如庄园在他的回答中所说,input可以使用该事件.下面是这表明了之间的差异的小提琴keypress,input和change事件:http://jsfiddle.net/Qxd76/(使用http://jsfiddle.net/Qxd76/show查看在智能手机上的结果).
我是C#的新手,我需要在TLS上使用GRPC。
作为试运行,我正在修改主grpc存储库中提供的示例以使用TLS。为此,我发现了另一个SO问题,似乎是个好答案:如何为gRPC启用服务器端SSL?。但是,我得到一个错误Unhandled Exception: Grpc.Core.RpcException: Status(StatusCode=Unavailable, Detail="Connect Failed")(下面有完整的跟踪)。
如果我在原始的非tls代码中指定了错误的端口,或者只是不启动服务器,则会收到相同的错误。我在Ubuntu上使用dotnet core。
代码的重要部分在下面,也可以在github的fork中找到。
客户:
var cacert = File.ReadAllText(@"../ca.crt");
var clientcert = File.ReadAllText(@"../client.crt");
var clientkey = File.ReadAllText(@"../client.key");
var ssl = new SslCredentials(cacert, new KeyCertificatePair(clientcert, clientkey));
var channel = new Channel("localhost", 555, ssl);
var client = new Greeter.GreeterClient(channel);
String user = "you";
var reply = client.SayHello(new HelloRequest {Name = user});
Console.WriteLine("Greeting: " + reply.Message);
channel.ShutdownAsync().Wait();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
服务器:
var cacert = File.ReadAllText(@"../ca.crt");
var …Run Code Online (Sandbox Code Playgroud)