0

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

4

5 回答 5

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);
  });

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

于 2009-10-14T14:09:10.833 回答
0

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

于 2009-10-13T21:10:29.820 回答
0

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

$('#TB_iframeContent').ready(function(){

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

});
于 2014-03-19T06:21:44.900 回答
0

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

刚刚换了:

if(!params['modal']){

if(params['modal'] != "true"){ 
于 2011-12-22T11:45:15.100 回答
0

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

于 2009-10-14T14:13:07.950 回答