2009-07-15 98 views
6

編輯:等待過了一會兒,並沒有得到任何東西,我決定 只爲 IE快捷方式做啄禁用現在。是否有可能禁用 IE快捷鍵訪問菜單/打印 等通過VBScript?禁用Internet Explorer快捷鍵

是否有可能禁用瀏覽器的快捷鍵?

因爲他們很多都在使用中的應用程序。例如,按Ctrl +p使用,我不希望瀏覽器彈出打印窗口。

+0

你是否設法讓這個工作?我遇到了同樣的問題,但仍找不到解決方案。 – 2014-10-06 14:14:25

+0

@DianaAmza,我找不到解決方案。 IE不會允許您覆蓋默認行爲。 – 2014-10-10 07:21:57

+0

好的,謝謝! – 2014-10-13 08:01:57

回答

4

是的,你可以聽與JavaScript的各種組合鍵和禁用默認的行爲。甚至有一個圖書館,你可以使用和測試here。我只是在他們的demo textarea中使用google chrome和firefox進行了測試,並且可以按照您的需要進行操作。

shortcut.add("Ctrl+P",function() { 
    return; 
}); 

這適用於上面列出的瀏覽器,但IE不允許您在某些情況下覆蓋默認行爲。

你在IE中唯一的選擇就是用像完全禁用Ctrl鍵:

document.onkeydown = function() { 
    if (event.keyCode == 17) alert('Ctrl Key is disabled'); 
}; 

這是不理想,可能不是你想要的,但它會奏效。

+0

Ctrl + P :( – 2009-07-15 09:42:14

+0

)我在使用下面的「Live Execution」面板感到很厭倦,我把鍵從「Ctrl + Shift + X」更改爲「Ctrl + P」,它顯示打印窗口。這意味着瀏覽器仍在監聽密鑰。我正在使用firefox 3. – 2009-07-15 09:45:13

+1

有一些操作你不能禁用 – Boldewyn 2009-07-15 09:47:39

3

您可以嘗試創建keydown事件的事件處理程序,檢查的鍵碼,防止其默認動作如果需要的話。但是,這不適用於所有瀏覽器。

爲Firefox(取消「打印」短項,驗證)的一個例子:

document.addEventListener("keydown", function(oEvent) { 
    if (oEvent.keyCode == 80 && oEvent.ctrlKey) 
     oEvent.preventDefault(); 
}, false) 
1

我對類似問題的工作,hooking keyboard event下面代碼工作很好地禁用,除了閃光物體上的IE瀏覽器有沒有得到了重點。由於我正在嘗試處理Flash對象上的鍵盤事件,因此此代碼對我無效。

function hookKeyboardEvents(e) { 
    // get key code 
    var key_code = (window.event) ? event.keyCode : e.which; 

    // case :if it is IE event 
    if (window.event) 
    { 
     if (!event.shiftKey && !event.ctrlKey) { 
      window.event.returnValue = null; 
      event.keyCode = 0; 
     } 
    } 
    // case: if it is firefox event 
    else 
     e.preventDefault(); 
} 

window.document.onkeydown = hookKeyboardEvents; 
1

從您的應用程序調用上按Ctrl + P的方法只是使鍵碼爲zero.I認爲,這將解決您的問題後...

window.event.keyCode = 0;

這將設置的鍵碼作爲zero..So當鍵代碼資源管理器檢查,這將是零......所以默認功能將不執行......

試試這個...只是一個建議

0

這適用於IE 8中的重要部分,IE需要將ev.returnValue設置爲false。注意:這隻有在你關注文檔中的某個元素時纔有效......也就是說,如果你只是加載頁面並點擊'ctrl-p',你會看到打印對話框。但是,如果你點擊頁面上的某個地方,然後嘗試它,它應該禁止打印對話框。

document.onkeydown = function (e) { 

    var ev = e||window.event; 

    // Do what I want keys to do ... 

    // Block browser short cuts 
    if(ev.preventDefault) // non-IE browsers 
     ev.preventDefault(); 
    else // IE Only 
     ev.returnValue = false; 
}; 
2

有一個很好的把戲與IE10 +打,以避免Alt組合鍵顯示瀏覽器菜單,像Alt + FAlt + H ...

我最近在IE11中使用,只需添加一個錨與對你的身體

<body> 
    <a href="#" accesskey="f"></a> 
    <script type="text/javascript"> 
    window.onkeydown = function(e){ 
      console.log(e.keyCode + " alt: " + e.altKey); 
      e.preventDefault(); 
    }; 
    window.onkeyup = function(e){ 
      console.log(e.keyCode + " alt: " + e.altKey); 
      e.preventDefault(); 
    }; 
    </script> 
</body> 

現在[yourKey]當你按下Alt + f瀏覽器不會顯示「文件彈出」像往常一樣,並讓事件KeyDown和KEYUP得到:屬性accesskey對你而言,而不僅僅是分身。