我正在尝试使用键盘快捷键在我的应用程序上显示搜索栏。
虽然键盘快捷键在使用 Windows 键盘时可以完美工作,但当我使用带有 Mac 键盘的 Mac 计算机时,代码会失败。
以下是我编写的函数 -
var osName = "Unknown OS";
if (navigator.appVersion.indexOf("Win") != -1) osName = "Windows";
if (navigator.appVersion.indexOf("Mac") != -1) osName = "MacOS";
function showSearchBarOnKeyPress() {
$(document).keydown(function (e) {
if ((e.ctrlKey && e.altKey && e.key === "z") || (osName === "MacOS" && e.keyCode === 90 && e.keyCode === 17 && e.keyCode === 91)) {
searchBarIsShown();
}
});
}
最初我没有“||” “If”语句中的条件。第一个条件在使用 Windows 键盘时有效。当我在 Mac 上检查时,它不起作用。所以我必须输入“||”健康)状况。
对于 MacOS 条件,最初我使用了键码 - 59,55 和 6,如本引用文献所示 - https://eastmanreference.com/complete-list-of-applescript-key-codes
在检查 Mac 计算机时,检测到的键码是 - 90,91 和 17,然后我将其替换。
但是还是不行。
有人可以提供他们对这个问题的见解/想法吗?
谢谢
最佳答案
试试这个: metaKey 是 mac 上的 cmd 键。 altKey 是 mac 上的选项键。
var osName = "Unknown OS";
if (navigator.appVersion.indexOf("Win") != -1) osName = "Windows";
if (navigator.appVersion.indexOf("Mac") != -1) osName = "MacOS";
function showSearchBarOnKeyPress() {
$(document).keydown(function (e) {
var modifier = (navigator.appVersion.indexOf("Mac") != -1) ? e.ctrlKey : e.metaKey;
if (modifier && e.altKey && e.key === "z") {
searchBarIsShown();
}
});
}
请注意,旧浏览器不支持metaKey..
关于javascript - 组合 Keydown 功能不适用于 Mac 键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56490086/