我在网页上运行了一个Flex应用,我想使用 Command + ←组合键来触发应用中的某些操作。这在大多数浏览器上都很好,但在Safari上,浏览器拦截此键盘事件并导致浏览器“返回”事件。有没有办法,通过Flex或通过页面上的其他地方的JavaScript,我可以告诉Safari不要这样做?
答案 0 :(得分:3)
简短的回答,这是非mac版本的safari上的(小)已知错误。您无法可靠地阻止所有快捷键。也许如果你更具体地了解你试图阻止的其他捷径?也许其中一些会起作用。例如剪贴复制有自己特殊的拦截方法。 (虽然看起来你可能已经知道了。)
您使用的是这样的东西吗?
function blockKeys(e) {
var blocked = new Array('c','x','v');
var keyCode = (e.keyCode) ? e.keyCode : e.which;
var isCtrl;
if(window.event)
isCtrl = e.ctrlKey
else
isCtrl = (window.Event) ? ((e.modifiers & Event.CTRL_MASK) == Event.CTRL_MASK) : false;
if(isCtrl) {
for(i = 0; i < blocked.length; i++) {
if(blocked[i] == String.fromCharCode(keyCode).toLowerCase()) {
return false;
}
}
}
return true;
}