【问题标题】:Thickbox doesn't close when Esc key is pressed when the iframe is focused当 iframe 聚焦时按下 Esc 键时,Thickbox 不会关闭
【发布时间】:2009-10-13 20:03:31
【问题描述】:

当我聚焦 iframe 并尝试按 esc 键关闭窗口时,没有任何反应。我认为这是因为焦点 iframe 未订阅此事件。有没有人知道如何将此事件附加到 iframe 而无需手动编辑包含在厚框中的每个页面?

【问题讨论】:

    标签: jquery thickbox


    【解决方案1】:

    此解决方案适用于 Internet Explorer,它恰好是我的客户群使用的唯一浏览器,但我更喜欢至少适用于 firefox 的解决方案。

    $("#TB_iframeContent").ready(function(){
        setTimeout(function(){
            $('#TB_iframeContent').contents().find('body').keyup(function(e){
                if(e.keyCode == 27){
                    tb_remove();
                }
            });
        }, 50);
      });
    

    我在原始的thickbox源代码的第245行添加了这个。

    【讨论】:

      【解决方案2】:

      您是否在 iframe 中运行 Flash?它可能会窃取您的键盘焦点。

      【讨论】:

      • 有没有办法关闭 iframe,即使它正在运行例如视频?
      【解决方案3】:

      出于安全原因,它不起作用。 iframe 内发生的任何事件都不允许冒泡到包含的文档中。

      【讨论】:

        【解决方案4】:

        我可以通过替换thickbox.js文件的第245行来解决这个问题。

        刚刚替换:

        if(!params['modal']){
        

        if(params['modal'] != "true"){ 
        

        【讨论】:

          【解决方案5】:

          只需将其添加到您的代码中

          $('#TB_iframeContent').ready(function(){
          
              setTimeout(function(){
                  $(window).keyup(function(e){
                            if(e.keyCode == 27){
                              $('#TB_closeWindowButton').click();
                    }
                      }); 
                  }, 50);
          
          });
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-08-18
            • 1970-01-01
            • 2010-10-13
            • 2020-10-08
            • 2017-01-14
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多