为iframe添加onclick事件
如果页面上有iframe时,鼠标点击在iframe内时,包含iframe的document是不响应任何事件的,
例如:
$("#iframe1").click(function(){//点击iframe
alert("点击1");
});
或者
$(function(){//给iframe循环绑定click事件
for(var n=1;n<=7;n++){
$("#iframe"+n).bind("click",{n:n}, clickHandler);
}
function clickHandler(event) {
var n = event.data.n;
alert("点击"+n);
}
});
均行不通。
所以需要给iframe绑定类似的事件,当iframe指向的是第三方的内容时,还要考虑跨域的问题,因此通过操作iframe的document是行不通的,还好有document.activeElement可供我们使用,最终的解决方案如下:
- 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
- if (this.iframes[i].hasTracked == false) {
- this.iframes[i].cb.apply(window, []);
- this.iframes[i].hasTracked = true;
- }
- } else {
- this.iframes[i].hasTracked = false;
- }
- }
- }
- }
- };
调用
- IframeOnClick.track(document.getElementById("iFrame"), function() { alert('a click'); });
为iframe添加onclick事件的更多相关文章
- JS如何为iframe添加onclick事件
如果页面上有iframe时,鼠标点击在iframe内时,包含iframe的document是不响应任何事件的, 例如: $("#iframe1").click(function() ...
- jq动态添加onclick事件在谷歌中不起作用
$("#oa-bed-rooType").append($('<option/>').val(0).text('请选择房间类型')); $('#oa-bed-roomT ...
- a 标签添加 onclick 事件
a 标签添加 onclick 事件 <a href="javascript:void(0);" οnclick="js_method()">点击&l ...
- HTML中在a标签中添加onclick事件
1.链接的onclick 事件被先执行,其次是href属性下的动作; 2.假设链接中同时存在href 与onclick,如果想让href 属性下的动作不执行,onclick 必须得到一个false的返 ...
- 利用事件的冒泡特性,为子标签添加Onclick事件
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 为iframe添加鼠标事件
1.关于iframe标签 使用iframe元素会创建包含另外一个文档的内联框架(即行内框架).所以我们可以使用iframe标签,在一个页面嵌入另一个页面.通过指定iframe的src为另一个页面的路径 ...
- js为元素添加onclick事件
$("div.manu a:last").on('click',function(){ if (page == totalPage) { return; } page = page ...
- 动态加载下拉框列表并添加onclick事件
1. js动态加载元素并设置属性 摘自(http://www.liangshunet.com/ca/201408/336848696.htm) <div id="parent&quo ...
- 原生js遍历每一个对象,给每一个对象添加onclick事件
<script type="text/javascript"> window.onload = function () { var imgs = document.im ...
随机推荐
- jQuery学习--Code Organization Concepts
jQuery官方文档: http://learn.jquery.com/code-organization/concepts/ Code Organization Concepts(代码组织概念) ...
- java 中 正则 matches vs find
find()方法在部分匹配时和完全匹配时返回true,匹配不上返回false; matches()方法只有在完全匹配时返回true,匹配不上和部分匹配都返回false.
- 安装archlinux的linux命令记录
磁盘的分区:cfdisk 格式化分区:mkfs.ext4,mkswap,swapon 查看所有分区:lsblk /dev/sda 先挂载 / 分区:mount /dev/sda1 /mnt archl ...
- mysql迁移到data下
http://www.jb51.net/article/47897.htm 由于yum安装mysql的时候,数据库的data目录默认是在/var/lib下,出于数据安全性的考虑需要把它挪到/data分 ...
- 在 CentOS7 上安装 Zookeeper服务
1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/services/zookeeper 2.进入到 /usr/local/serv ...
- python 文本处理操作
打开和关闭文件 open 函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写 ''' 模式 描述 r 以只读方式打开文件.文件的指针将会放在文 ...
- docker之Dockerfile实践
上一篇介绍了Dockerfile中使用的指令,现在开始进行指令实践 先查看下本地的镜像,选一个作为base image: [root@docker ~]# docker images REPOSITO ...
- springboot日志配置
默认情况下,spring boot使用的是LogBack日志系统.在spring-boot-starter-web和spring-boot-starter中都已经默认依赖了logging的工具包. 如 ...
- python__面向对象,继承,命名空间
http://www.cnblogs.com/Eva-J/articles/7293890.html 阅读目录 楔子 面向过程vs面向对象 初识面向对象 类的相关知识 对象的相关知识 对象之间的交互 ...
- RPM Yum 相关命令及参数
RPM 命令 我们可以直接使用rpm命令,对软件包进行一些操作. 安装 rpm –ivh <package_name> rpm –Uvh <package_name> # 没有 ...