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);