检测在 Mac 上键入的重音字符
Detect accented chars typed on Mac?
我正在尝试通过侦keypress
听页面<body>
上的 es 和 keydown
s 来模拟 SVG 中的<input type="text">
。
Mac上的重音字母似乎存在问题。您必须键入 Opt+e,a 用于获取 á
,而对于其他元音也是如此。
我像这样听身体(JSFiddle(:
var theElement = document;
theElement.onkeypress = function(e) {
console.log("Press: " + String.fromCharCode(e.keyCode) + " " + e.keyCode);
}
theElement.onkeydown = function(e) {
console.log("Down: " + String.fromCharCode(e.keyCode) + " " + e.keyCode);
}
theElement.onkeyup = function(e) {
console.log("Up: " + String.fromCharCode(e.keyCode) + " " + e.keyCode);
}
在 Windows 上,键入一个é
我得到以下日志:
向下: Þ 222 (指数(:27
上: Þ 222 (索引(:30
下降: E 69 (索引(:27
出版社: é 233 (索引(:24
上一篇: E 69 (索引(:30
它工作正常。但是在Mac上,我得到:
下降: 18 (索引(:27
下降: E 69 (索引(:27
上一篇: E 69 (索引(:30
上: 18 (索引(:30
下降: E 69 (索引(:27
印刷机: e 101 (索引(:24
上: E 69
18
是向上或向下按下 Option 键,但它似乎忘记了重音正在尝试输入,我只按了e
字符。
更奇怪的是,当我将相同的事件附加到<input type="text">
框时,我会在input
上键入é
(再次在Mac中(,但新闻事件显示标准e
而不是重音(JSFiddle(:
不管下降: 18 (索引(:27
向下: å 229 (索引(:27
上一篇: E 69 (索引(:30
上: 18 (索引(:30
向下: å 229 (索引(:27
上一篇: E 69 (索引(:30
我输入什么重音字母(é
,á
,你的名字(,它显示相同的229代码。
日志与 Windows 中的<body>
日志完全相同 - 即,它在 Windows 上的两个小提琴中工作正常且一致。
正在最近的谷歌浏览器中测试两者(我不能发誓它是最新的,但它是最新的(。
哈尔普?!
你可以抓住选项键
var theElement = document;
theElement.onkeypress = function(e) {
if (theElement.accent === true)
console.log("Press: " + String.fromCharCode(e.keyCode) + " (accented) " + e.keyCode);
else
console.log("Press: " + String.fromCharCode(e.keyCode) + " " + e.keyCode);
}
theElement.onkeydown = function(e) {
theElement.accent = true;
if (theElement.accent === true)
console.log("Press: " + String.fromCharCode(e.keyCode) + " (accented) " + e.keyCode);
else
console.log("Press: " + String.fromCharCode(e.keyCode) + " " + e.keyCode);
}
theElement.onkeyup = function(e) {
theElement.accent = false;
if (theElement.accent === true)
console.log("Press: " + String.fromCharCode(e.keyCode) + " (accented) " + e.keyCode);
else
console.log("Press: " + String.fromCharCode(e.keyCode) + " " + e.keyCode);
}
我的意思是,在累积实现中,您可能希望创建一个函数来从数组或其他东西中获取重音字符代码。
- 在JavaScript中输出转义字符
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- Safari(Mac OS)上的jQuery平滑滚动问题
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 使用RegExp查找url中的字符
- 搜索api在mac上显示对话框
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 允许在文本框中使用某些字符
- 根据页面的位置突出显示文本中的字符
- 元素的内容必须由格式正确的字符数据或标记组成
- 如何将字符串拆分为字符,但在javascript中保留空格
- 使用Google Maps API向标记添加多个字符
- 处理JSON字符串会导致JavaScript错误
- 单元格的工具提示或标题不显示超过2000个字符
- javascript替换换行符和特殊字符
- angularjs删除动态形式元素中的特殊字符
- TinyMCE:可以'焦点改变后,不要在mac上写特殊字符
- 检测在 Mac 上键入的重音字符