关于iframe与父元素相互通信的一些问题

今天干的活涉及到了iframe之间的通信问题,自己对这一块不是很了解,查了好多资料,在这里整理一波:

1.监听iframe的加载事件

    首先得在整体页面的加载事件里面,通过(self!=top)来判断iframe的加载

$(function(){
  if(self!=top){
    //此时iframe正在加载    
  }
})

2.iframe中获取父元素中的某个元素

    iframe.parent.document

    在有iframe的页面中,其实有两个window对象,一个是顶层的父元素的window,一个是iframe内的window,若iframe想访问父元素内的内容,可以通过iframe.parent.document获取document,接下来就按document.getElementBy...或者$("").find()来获取你想要的元素

3.获取当前iframe中的地址(与iframe的src属性区分开来)

    iframe.location.pathname

    获取iframe的地址的话,我建议使用iframe.location.pathname,不要使用iframe.getAttribute("src")/attr("src")。因为在点击浏览器的后退按钮时,iframe标签的src属性是不会改变的。有时需要对路径处理时会出问题。而iframe.location.pathname则不会出现这种问题,因为它是随着当前的iframe的window对象改变而改变的


ps:另外记录一个无关iframe的问题:当要对数组进行遍历操作时,第一时间想到的就是map()方法,但是需要注意map方法不能使用break强制退出,当需要强制退出时尽量使用for循环。


over

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值