javascript - 向 iframe 添加事件监听器

标签 javascript dom iframe extjs

是否可以向 iframe 添加事件监听器?我试过这段代码,但它似乎不起作用:

document.getElementsByTagName('iframe')[0].contentWindow.window.document.body.addEventListener('afterLayout', function(){
                console.log('works');
            });

我也刚刚尝试使用通过 id 获取元素并通过我正在使用的 JavaScript 框架添加我的监听器,如下所示:

Ext.fly("iframeID").addListener('afterLayout', function(){ alert('test'); });

我可以调用 iframe 中的函数,所以我认为安全性不是问题。有任何想法吗?

最佳答案

我从未尝试过处理“afterLayout”事件,但需要更多浏览器兼容的代码 您将使用 (iframe.contentWindow || iframe.contentDocument) 而不是 iframe.contentWindow

尝试类似的东西

var iframe = document.getElementsByTagName('iframe')[0],
    iDoc = iframe.contentWindow     // sometimes glamorous naming of variable
        || iframe.contentDocument;  // makes your code working :)
if (iDoc.document) {
    iDoc = iDoc.document;
    iDoc.body.addEventListener('afterLayout', function(){
                        console.log('works');
                });
};

希望对您有所帮助。

关于javascript - 向 iframe 添加事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1394262/

相关文章:

javascript - 如何动态地将类添加到焦点输入字段的父 div?

javascript - Jquery + 追加 + PHP

javascript - 是否可以将 php 变量分配给 jquery var,然后刷新该 jquery 变量

javascript - 仅在需要时才在 DOM 中使用 jQuery 加载 HTML 元素

css - 需要使 DIV 显示为 float 页脚,在调整窗口大小时将保留在 iframe 前面

iphone - iPhone 中的 iFrame

javascript - d3 向 d3.xml 加载的元素添加缩放功能

java - 使用从 XML 文件中提取的数据创建正则表达式

javascript - 有没有办法检查 html 属性是否不是 DOM HTML5 的一部分?

javascript - 如何定位灯箱/div 弹出窗口,使其位于 iframe 中视口(viewport)的中心