iframeにフォーカスを合わせ、escキーを押してウィンドウを閉じようとしても、何も起こりません。フォーカスされたiframeがこのイベントにサブスクライブされていないためだと思います。シックボックスに含まれている各ページを手動で編集せずに、このイベントをiframeに添付する方法を知っている人はいますか?
質問する
2928 次
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 に答える