火狐iframe的src属性更改后onblur失效问题

<span style="font-family:Microsoft YaHei;font-size:18px;"><span style="background-color: rgb(255, 255, 255);">昨天写了一下 </span><a target=_blank href="http://blog.csdn.net/u012175246/article/details/44104783" target="_blank" style="background-color: rgb(255, 255, 255);">笔记</a> <span style="background-color: rgb(255, 255, 255);">,提到了火狐iframe的onblur事件失效的问题。(这是火狐固有的问题,见 </span><a target=_blank href="qq://txfile/#" style="background-color: rgb(255, 237, 196);">https://developer.mozilla.org/en-US/docs/Web/Events/blur</a><span style="background-color: rgb(255, 255, 255);"> 。)虽然笔记里的方法解决了失效的问题,但当我改变iframe的src属性值之后,onblur事件再次失效。</span></span>


在爆栈上提问,经大神们解答,终于解决了这个问题。


原因是更改iframe的src属性值后,浏览器会刷新一下iframe的内容,此时onblur事件失效。解决的方法时,每当iframe载入之后,重新绑定一次事件。即在iframe里添加onload属性。这个属性值对应绑定事件的函数。


<span style="font-size:14px;"><iframe id="iframe" src="" scrolling="yes" style="display: none;width:500px;height:500px" src="" οnblur="hide()" οnlοad="seint()"></iframe></span>


<span style="font-size:14px;"><script>
function seint(){
	if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){  
		document.getElementById("iframe").contentWindow.addEventListener("blur",hide,false);  
   	}
}
</script></span>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值