Как закрыть 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 при нажатии кнопки.

Другие вопросы по тегам