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

これを元のthickboxソースの245行目に追加します。

于 2009-10-14T14:09:10.833 に答える
0

iframeでFlashを実行していますか?キーボードのフォーカスを盗んでいる可能性があります。

于 2009-10-13T21:10:29.820 に答える
0

セキュリティ上の理由から機能しません。iframe内で発生するイベントは、含まれているドキュメントにバブルアウトすることはできません。

于 2009-10-14T14:13:07.950 に答える
0

この問題は、thickbox.jsファイルの245行目を置き換えることで解決できます。

交換したばかり:

if(!params['modal']){

if(params['modal'] != "true"){ 
于 2011-12-22T11:45:15.100 に答える
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 に答える