【发布时间】:2009-10-13 20:03:31
【问题描述】:
当我聚焦 iframe 并尝试按 esc 键关闭窗口时,没有任何反应。我认为这是因为焦点 iframe 未订阅此事件。有没有人知道如何将此事件附加到 iframe 而无需手动编辑包含在厚框中的每个页面?
【问题讨论】:
当我聚焦 iframe 并尝试按 esc 键关闭窗口时,没有任何反应。我认为这是因为焦点 iframe 未订阅此事件。有没有人知道如何将此事件附加到 iframe 而无需手动编辑包含在厚框中的每个页面?
【问题讨论】:
此解决方案适用于 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行添加了这个。
【讨论】:
您是否在 iframe 中运行 Flash?它可能会窃取您的键盘焦点。
【讨论】:
出于安全原因,它不起作用。 iframe 内发生的任何事件都不允许冒泡到包含的文档中。
【讨论】:
我可以通过替换thickbox.js文件的第245行来解决这个问题。
刚刚替换:
if(!params['modal']){
与
if(params['modal'] != "true"){
【讨论】:
只需将其添加到您的代码中
$('#TB_iframeContent').ready(function(){
setTimeout(function(){
$(window).keyup(function(e){
if(e.keyCode == 27){
$('#TB_closeWindowButton').click();
}
});
}, 50);
});
【讨论】: