给iframe标签添加点击事件方法

今天遇到一个需求,通过iframe标签引入其它页面(当前页面为a.html,被引入页面为b.html),在b页面当中,点击一个事件之后,需要让a页面某个元素消失,但试了很多次,iframe事件无法添加,最终还是网友的力量强大,找到了两个方法,如果其它网友还有更好的办法,可以留言给我。

我找到两个方法,我全贴下面

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<style type="text/css">
		#box {
			width: 500px;
			height: 600px;
			background: #ccc;
		}
	</style>

	<body>
		<div id="box">
			<iframe id="iframe_css" data-types="click" src="b.html" width="300" height="600"></iframe>
		</div>
	</body>

	<script type="text/javascript">
	 
    //第一种给iframe添加点击方法
  /*  setit()
		function setit() {
			if(document.all) {
				document.getElementById("iframe_css").attachEvent("click", dothis);
			} else {
				document.getElementById("iframe_css").contentWindow.addEventListener("click", dothis, false);
			}
		}

		function dothis() {
			console.log("blurred");
			}*/
			
			/
		
	 
	 
	 //第二种给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  
								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_css"), function() {
				 console.log(1231231231)
			});
			
	</script>

</html>

如果有错误,欢迎留言指正

转载
https://blog.csdn.net/u011151452/article/details/52353566

https://blog.csdn.net/weixin_30652491/article/details/99429325

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值