2013-04-06 3 views
0

Я хотел бы скрыть модальное всплывающее окно, нажав клавишу escape. Я нашел способ, который работает на страницах, содержащих тег тела (а не контент-страницы); используя приведенную ниже функцию и событие onkeypress для тега body.Как скрыть модальный всплывающее окно с помощью клавиши перехода на странице содержания



    function catchEsc(e) { 
      var kC = (window.event) ? // MSIE or Firefox? 
       event.keyCode : e.keyCode; 
      var Esc = (window.event) ? 
       27 : e.DOM_VK_ESCAPE // MSIE : Firefox 
      if (kC == Esc) { 
       var mpu = $find('ModalPopupExtender1'); 
       mpu.hide(); 
      } 
     } 

проблема Я использую страницу контента, и я не знаю, не имея тело тега, как я могу это сделать. любые идеи?

ответ

0

Я решил проблему сам, как показано ниже:

  • В главной странице, я сделал тег тега управляет сервером (id = "myBody" runat = "server").

  • В Материалам (ASPX),

    • Я установил ClientIDMode модального всплывающего окна для статичных,
    • Я добавил Javascript функции catchEsc (е):


    function catchEsc(e) { 
      var kC = (window.event) ? // MSIE or Firefox? 
       event.keyCode : e.keyCode; 
      var Esc = (window.event) ? 
       27 : e.DOM_VK_ESCAPE // MSIE : Firefox 
      if (kC == Esc) { 
       var mpu = $find('ModalPopupExtender1'); 
       mpu.hide(); 
      } 
     } 

  • наконец-то в коде страницы содержания позади, я добавил код bel от низкого до Page_Load:


    HtmlGenericControl body = 
       (HtmlGenericControl)this.Page.Master.FindControl("myBody"); 
    body.Attributes.Add("onkeypress", "catchEsc(event)"); 

и это сработало!

0

этот код будет работать содержательный заполнитель также и нет необходимости добавлять обработчик позади кода

function pageLoad(sender, args) { 
     if (!args.get_isPartialLoad()) { 
      // add our handler to the document's 
      // keydown event 
      $addHandler(document, "keydown", onKeyDown); 
     } 
    } 

    function onKeyDown(e) { 
     if (e && e.keyCode == Sys.UI.Key.esc) { 
      $find('popPAlert').hide(); 
      $find('ModalPopupThemeView').hide(); 
      $find('AlPopUp').hide(); 
      $find('Mod_Error').hide(); 
      $find('Mod_preview').hide(); 
     } 
    } 
</script> 
+0

Да, это также верно. Это сработало. – parisa

 Смежные вопросы

  • Нет связанных вопросов^_^