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