当iframe聚焦时,按下Esc键时,Thickbox不会关闭

时间:2009-10-13 20:03:31

标签: jquery thickbox

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

5 个答案:

答案 0 :(得分: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行添加此内容。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

刚换成:

if(!params['modal']){

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

答案 4 :(得分:0)

只需在代码中添加

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

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

});