2009-10-13 89 views
0

當我關注iframe並嘗試按esc鍵關閉窗口時,什麼都不會發生。我認爲這是因爲重點的iframe沒有訂閱這個事件。有沒有人有任何想法,我可以將這個事件附加到iframe,而無需手動編輯thickbox中包含的每一個頁面?當iframe集中時按下Esc鍵時,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行添加了這個。

0

你在iframe中運行Flash嗎?它可能正在竊取你的鍵盤焦點。

+0

不,我可以重新在火狐,Chrome,即問題。 – Dave 2009-10-13 21:26:30

+0

有沒有辦法關閉iframe,即使它在運行例如視頻? – 2016-02-16 12:34:08

0

它出於安全原因不起作用。在iframe中發生的事件都不允許向包含文檔冒出來。

0

我可以通過替換thickbox.js文件的第245行來解決此問題。

剛剛更換:

if(!params['modal']){ 

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

只添加這在你的代碼

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

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

});