我想在按下alt + tab或windows + d时触发事件。以下是我的代码,当鼠标指针离开浏览器窗口时发出警报。但即使用户按下alt + tab或Windows + D,也会发生此事件。请问有人能帮助我吗? Folowing是我的代码供您参考:
<!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 :(得分:2)
答案 1 :(得分:2)
注意如果您想处理他们通过操作系统注册的任何密钥(例如: Alt + Tab ),您 CAN不通过Jquery做到这一点。
您需要将事件分配给未注册的密钥,以使用Jquery激活您的事件。
你可以尝试一些像打击这样的代码来处理你想要的东西
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
});
并支持组合:
jwerty.key('⌃+⇧+P/⌘+⇧+P', function () {
// your code
});
<小时/> 并且有一个简单的javaScript库Mousetrap用于处理键盘快捷键。看看这个例子:
Mousetrap.bind('h', function() {
// your code
});
OR
它还支持组合:
Mousetrap.bind(['ctrl+h', 'ctrl+l'], function(e) {
// your code
}
我希望它对你有用。