2013-04-09 1 views
4

У меня есть сценарий, который должен открыть раздел веб-страницы и сохранить изменения в Ctrl + n и Ctrl + s. Я получил его в IE, но он не кажется работать в firefox и chrome. Есть идеи?Переопределение клавиш быстрого доступа в firefox и chrome

My over ride функция.

function prevent(e) 
{ 
try{e.stopPropagation();}catch(ex){} 
try{e.preventDefault()}catch(ex){} 
try{if (e.preventDefault) 
     e.preventDefault(); 
    else { 
     e.cancelBubble = true; 
     e.returnValue = false; 
     e.keyCode = 0; 
    }} catch(ex){} 
} 
+0

это могло бы помочь: http://stackoverflow.com/q/7295508/212869 (или нет, в зависимости от обстоятельств) – NickSlash

+0

Я пытаюсь избежать JQuery, я уже посмотрел на него. – wolfcall

+0

Я больше думал о том, что некоторые ярлыки браузера не могут быть переопределены, а все, что делается в jQuery, можно сделать в обычном JavaScript – NickSlash

ответ

8

Я видел ту же проблему. Некоторые браузеры не позволят вам фиксировать определенные ярлыки. Посмотрите на эту https://stackoverflow.com/a/7296303/1366887

Некоторые комбинации клавиш resticted в Chrome 4, но не в Chrome 3. Посмотрите здесь: https://groups.google.com/a/chromium.org/forum/?fromgroups=#!topic/chromium-bugs/Ntc1byZXHfU

Здесь представлен Javascript:

$(window).keydown(function(event) { 
    if(event.ctrlKey && event.keyCode == 84) { 
    console.log("Hey! Ctrl+T event captured!"); 
    event.preventDefault(); 
    } 
    if(event.ctrlKey && event.keyCode == 83) { 
    console.log("Hey! Ctrl+S event captured!"); 
    event.preventDefault(); 
    } 
}); 

Я использовал это много раз, и он много работал.

Вот еще rescource вы посмотрите на может: http://unixpapa.com/js/key.html

Без Jquery:

onkeydown = function(e){ 
    if(e.ctrlKey && e.keyCode == 'S'.charCodeAt(0)){ 
    e.preventDefault(); 
    //your saving code 
    } 
} 

Вот JSFIDDLE его работу.

+0

Если вы не знаете, в чем проблема. Но когда я переписал его, он начал работать ... – wolfcall

+0

У меня возникла странная проблема с моим кодом в firefox. Когда я запускаю JSfiddle, это не проблема, но когда я добавляю его в файл js на своем сайте, он все еще открывает новую вкладку, которую вы когда-либо видели раньше? – wolfcall

+0

@wolfcall Уверены ли вы, что у вас есть JS-файл? Кроме того, это может быть связано с новым firefox, если они обновлены. Убедитесь, что js запущен. –