为了账号安全,请及时绑定邮箱和手机立即绑定

用document.activeElement解决iframe跨域问题

标签:
JavaScript

iframe里面一般都会使用别人的URL,没有很多交互,使用document.activeElement可以对iframe进行事件监听。
使用下面的类进行测试:

 var IframeOnClick = {        resolution: 200,        iframes: [],        interval: null,        Iframe: function() {            this.element = arguments[0];            this.cb = arguments[1];            this.hasTracked = false;        },        track: function(element, cb) {            this.iframes.push(new this.Iframe(element, cb));            if (!this.interval) {                var _this = this;                this.interval = setInterval(function() { _this.checkClick(); }, this.resolution);            }        },        checkClick: function() {            if (document.activeElement) {                var activeElement = document.activeElement;                for (var i in this.iframes) {                    if (activeElement === this.iframes[i].element) { // user is in this Iframe                            this.iframes[i].cb.apply(window, []);                    }                }            }        }    };            var index = layer.open({            type: 2,            content: 'http://layim.layui.com',            area: ['320px', '195px'],            maxmin: true,            success:function (layero,index) {                var iframeWin = window[layero.find('iframe')[0]['name']];                IframeOnClick.track(layero.find('iframe')[0], function() { console.log("testtttt") });            }        });        layer.full(index);

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消