2013-12-03 1 views
2

Я хочу запустить событие, когда нажата кнопка alt + tab или windows + d. Следующим является мой код для предупреждения, когда указатель мыши находится вдали от окна браузера. Но даже если пользователь нажимает alt + tab или Windows + D, также должно произойти это событие. Может ли кто-нибудь помочь мне в этом отношении, пожалуйста? Folowing мой код для справки:Как запустить событие в jquery, когда нажата кнопка alt + tab или windows + d?

<!DOCTYPE html> 
<html> 
    <head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"> 
    <script> 
     var timer; 
     $(document).ready(function() { 
     $(document).mouseleave(function() { 
      //alert("Mouse is away"); 
      customAlert("your mouse is away"); 
     }); 
     }); 

     function customAlert(customText) { 
     $("#popUp").html(customText); 
     timer = setInterval(customAlert2, 5000); 

     $("#popUp").dialog({ 
      dialogClass: "no-close", 
      buttons: [{ 
         text: "OK", click: function() { 
         $(this).dialog("close"); 
         clearInterval(timer); 
         } 
        }] 
     }); 
     } 

     function customAlert2() { 
     location.reload(); 
     $("#popUp2").dialog({ 
     dialogClass: "no-close", 
     buttons: [{ 
        text: "OK", click: function() { 
        $(this).dialog("close"); 
        } 
       }] 
     }); 
     } 


    </script> 
    </head> 
    <body> 
    <h1>My first Javascript program</h1> 
    <p>Hello World!</p> 
    <div id="popUp" title="First alert message"></div> 
    <div id="popUp2" title="Second alert message">Time is over</div> 
    </body> 
</html> 
+0

JavaScript может только «видеть», что происходит в браузере. – jeff

+0

@PHPLover, вы нашли свой ответ? –

+0

Я думаю, вас может заинтересовать API видимости HTML5 https://davidwalsh.name/page-visibility – gregmatys

ответ

2

jwerty это отличный плагин, который позволяет создавать функции для определенных комбинаций клавиш.

например .:

jwerty.key('ctrl+shift+P', function() { [...] }); 
2

внимание, если вы хотите обрабатывать любые ключи, которые они зарегистрированы ОС (например: Alt + Tab) вы НЕ МОЖЕТЕ сделать это с помощью Jquery.

вам необходимо назначить свое событие незарегистрированным ключам для запуска вашего события с помощью JQuery.

вы можете попробовать некоторый код, как удар обрабатывать то, что вы хотите Handly

var keys = {}; 

$(document).keydown(function (e) { 
    keys[e.which] = true; 
}); 

$(document).keyup(function (e) { 
    delete keys[e.which]; 
}); 

if((keys[91] && keys[68]) || (keys[18] && keys[9])) /*windows+d OR alt+tab*/ 
{ /* your code */} 


или

использование jwerty LIB, чтобы сделать это. Пример кода:

jwerty.key('ctrl+shift+P', function() { 
    // your code 
}); 

и поддержка commbinations:

jwerty.key('⌃+⇧+P/⌘+⇧+P', function() { 
    // your code 
}); 


и Там простая библиотека JavaScript Mousetrap для обработки клавиш. Посмотрите на пример:

Mousetrap.bind('h', function() { 
    // your code 
}); 

ИЛИ

Он также поддерживает различные комбинации:

Mousetrap.bind(['ctrl+h', 'ctrl+l'], function(e) { 
    // your code 
} 

я надеюсь, что это полезно для вас.

Смежные вопросы