Как закрыть GreyBox при нажатии клавиши escape или если пользователь щелкает где-то еще на странице?
Я использую GreyBox для открытия новой HTML-страницы в том же окне. Он работает нормально, но теперь я хочу, чтобы он закрывался при нажатии клавиши escape или если пользователь щелкает где-то еще на странице. Как я могу это сделать?
редактировать:---
document.onkeypress = function (event) {
if (event == undefined) { event = window.event; }
if (event.keyCode == 27) {
AJS.AEV(document,"keypress",GB_hide);
}
}
Я использовал это, и он отлично работает на Mozilla, но не на сафари или хром.... любая идея, почему это так??
4 ответа
Это добилось цели.
document.onkeypress = function noNumbers2(e){
e = e || window.event;
var keynum = e.keyCode || e.which;
if(keynum == 27){
AJS.AEV(document,"keypress",GB_hide);
}
}
С JQuery вы можете сделать это. это работает нормально для меня
По нажатию кнопки Escape
$(document).keyup(function(e) {
if (e.keyCode == 27) { parent.GB_hide(); } // esc
});
По нажатию на внешнее окно
$(document).on('click','#GB_overlay', function(e) {
parent.GB_hide();
});
Возможно, это поможет вам?
window.document.onkeydown = function(evt) {
if (evt.keyCode == 27) {
if (alert.open) {
alert.close();
}
}
}
Вместо того, чтобы использовать Google дать URL-адрес страницы, куда вы хотите перенаправить
OnClientClick="top.window.location.href='http://localhost/yourpagename.aspx'; parent.parent.GB_hide();"
код закрытия и перенаправления серого поля jquery при нажатии кнопки.