当我聚焦 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);
});
我在原始的厚盒源代码的第 245 行添加了这个。
于 2009-10-14T14:09:10.833 回答
0
您是否在 iframe 中运行 Flash?它可能会窃取您的键盘焦点。
于 2009-10-13T21:10:29.820 回答
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 回答
0
我可以通过替换thickbox.js 文件的第245 行来解决这个问题。
刚刚换了:
if(!params['modal']){
和
if(params['modal'] != "true"){
于 2011-12-22T11:45:15.100 回答
0
出于安全原因,它不起作用。iframe 内发生的任何事件都不允许冒泡到包含的文档中。
于 2009-10-14T14:13:07.950 回答