4
我有一個網頁上運行的Flex應用程序,我想用命令 + ←組合鍵來觸發應用某些行動。這在大多數瀏覽器上都很好,但在Safari上,瀏覽器攔截此鍵盤事件並導致瀏覽器「返回」事件。有沒有辦法,無論是通過Flex或通過頁面上的其他地方的JavaScript,我可以告訴Safari不要這樣做?的Flex禁用Safari瀏覽器的鍵盤快捷鍵
我有一個網頁上運行的Flex應用程序,我想用命令 + ←組合鍵來觸發應用某些行動。這在大多數瀏覽器上都很好,但在Safari上,瀏覽器攔截此鍵盤事件並導致瀏覽器「返回」事件。有沒有辦法,無論是通過Flex或通過頁面上的其他地方的JavaScript,我可以告訴Safari不要這樣做?的Flex禁用Safari瀏覽器的鍵盤快捷鍵
簡短的回答,它是Safari瀏覽器的非Mac版本上已知的(小)已知錯誤。您無法可靠地阻止所有快捷鍵。也許如果你更具體地說明你試圖阻止的其他快捷方式?也許他們中的一些人會工作。例如剪貼複製有自己特殊的阻擋方法。 (雖然看起來你可能已經知道了。)
你是否在使用類似的東西?
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;
}
這是普遍不好窗體攔截鍵盤事件,讓他們做一些他們並不意味着,實際上是閃光的輿論如此迅速下降的原因之一。我不得不建議不要這樣做,並找到另一個組合使用。 –
即使這是一個壞主意,我仍然想知道它是如何做到的。 –
當然,你無法通過AS3來完成。它必須通過Javascript來完成。查看http://stackoverflow.com/questions/7295508/javascript-capture-browser-shortcuts-ctrlt-n-w –