当 iframe 获得焦点时按下 Esc 键时,Thickbox 不会关闭

发布于 2024-08-07 20:46:59 字数 107 浏览 5 评论 0原文

当我聚焦 iframe 并尝试按 esc 键关闭窗口时,没有任何反应。我认为这是因为聚焦的 iframe 没有订阅此事件。有谁知道如何将此事件附加到 iframe,而无需手动编辑厚盒中包含的每个页面?

When I focus the iframe and try to push the esc key to close the window, nothing happens. I assume that it is because the focused iframe is not subscribed to this event. Does anyone have any ideas how I could attach this event to the iframe without having to manually edit each one of the pages that are contained in a thickbox?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

那请放手 2024-08-14 20:46:59

该解决方案适用于 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 行。

This solution works in internet explorer, which happens to be the only browser my client base is using, however I would prefer a solution that at least works in firefox.

$("#TB_iframeContent").ready(function(){
    setTimeout(function(){
        $('#TB_iframeContent').contents().find('body').keyup(function(e){
            if(e.keyCode == 27){
                tb_remove();
            }
        });
    }, 50);
  });

I add this at line 245 in the original thickbox source.

风向决定发型 2024-08-14 20:46:59

您是否在 iframe 中运行 Flash?它可能会窃取您的键盘焦点。

Are you running Flash in the iframe? It could be stealing your keyboard focus.

三人与歌 2024-08-14 20:46:59

出于安全原因,它不起作用。 iframe 内部发生的任何事件都不允许冒泡到包含的文档中。

It does not work for security reasons. None of the events that happen inside the iframe are allowed to bubble out to the containing document.

把回忆走一遍 2024-08-14 20:46:59

我可以通过替换 Thickbox.js 文件的第 245 行来解决这个问题。

刚刚替换:

if(!params['modal']){

if(params['modal'] != "true"){ 

I could solve this problem by replacing the line 245 of the thickbox.js file.

Just replaced:

if(!params['modal']){

with

if(params['modal'] != "true"){ 
负佳期 2024-08-14 20:46:59

只需将其添加到您的代码中

$('#TB_iframeContent').ready(function(){

    setTimeout(function(){
        $(window).keyup(function(e){
                  if(e.keyCode == 27){
                    $('#TB_closeWindowButton').click();
          }
            }); 
        }, 50);

});

just add this in your code

$('#TB_iframeContent').ready(function(){

    setTimeout(function(){
        $(window).keyup(function(e){
                  if(e.keyCode == 27){
                    $('#TB_closeWindowButton').click();
          }
            }); 
        }, 50);

});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文