Как закрыть GreyBox при нажатии клавиши escape или если пользователь щелкает где-то еще на странице? - PullRequest
0 голосов
/ 12 августа 2010

Я использую GreyBox для открытия новой HTML-страницы в том же окне.Он работает нормально, но теперь я хочу, чтобы он закрывался при нажатии клавиши escape или если пользователь щелкает где-то еще на странице.Как я могу это сделать?

edit: ---

document.onkeypress = function (event) {
  if (event == undefined) { event = window.event; }
if (event.keyCode == 27) {
  AJS.AEV(document,"keypress",GB_hide);
  }
 }

Я использовал это, и он отлично работает на Mozilla, но не на Safari или Chrome .... любая идея, почему это тактак ??

Ответы [ 4 ]

1 голос
/ 20 августа 2010

это добилось цели.

document.onkeypress = function noNumbers2(e){
    e = e || window.event;
    var keynum = e.keyCode || e.which;
    if(keynum == 27){
  AJS.AEV(document,"keypress",GB_hide);
  }
}
0 голосов
/ 20 апреля 2014

С помощью jquery вы можете сделать это следующим образом. это работает нормально для меня

При нажатии кнопки Escape

$(document).keyup(function(e) {

            if (e.keyCode == 27) { parent.GB_hide(); }   // esc
 });

При нажатии на внешнее окно

 $(document).on('click','#GB_overlay', function(e) {


             parent.GB_hide();

    });
0 голосов
/ 23 марта 2012

, а не с помощью Google дать URL-адрес страницы, куда вы хотите перенаправить

OnClientClick = "top.window.location.href = 'http://localhost/yourpagename.aspx'; parent.parent.GB_hide ();"

- это код для закрытия и перенаправления серого поля jquery при нажатии кнопки.

0 голосов
/ 12 августа 2010

Возможно, это вам поможет?

window.document.onkeydown = function(evt) {
    if (evt.keyCode == 27) {
        if (alert.open) {
            alert.close();
        }
    }
}
...