は、jQueryの上でこのコードを動作します:ニキータの答えに基づいて
// esc must close popup
$("body").keyup(function(e) {
if (27 == e.keyCode) {
hidepopup();
}
});
// input in popup
var $file = $("input:file");
// keyup will be catched for input, not for body
$file.bind("click", function(e) {
$(this).focus();
});
// keyup catching will be changed back to body after selecting file
$file.bind("change", function(e) {
$(this).blur();
});
// we catched esc keyup, so change esc catching back to the body
$file.keyup(function(e) {
if (27 == e.keyCode) {
$(this).blur();
// i don't know, why it works with return false, because i am not js programmer), but cancelBubble or e.preventDefault is not working
return false;
}
});
私は、ほとんどの人がESCキーの代わりに「キャンセル」ボタンを押したと思います。この解決策がサポートしていないもの。 –