• iframe多层嵌套时获取元素


    一、同域:
    1、父页面获取子页面元素:
    注意:onload事件
    jQuery获取:
    $("iframe").contents().find("holder")......;

    (嵌套三层,或者更多时)
    $('iframe').contents().find('iframe').contents().find("iframe")......


    js获取:
    window.frames["holder"].contentWindow.document 或者 window.frames[0].contentWindow.document(不推荐)
    (嵌套三层,或者更多时)
    window.frames[0].contentWindow.window.frames[0](......).contentWindow.document


    补充:
    document.frames 与 window.frames 之间的区别:
    document.frames 只有IE、Opera 支持,等同于 window.frames。用来取得当前页面内 window 对象的集合。
    在 Firefox、Chorome、Safari中使用 document.frames 不能获取到 FRAME 元素
    window.frames['myframe'] 代替 document.frames('myframe')或document.frames['myframe']。
    注意:window.frames只可写成window.frames['myframe']不能写成window.frames('myframe')

    2、子页面获取父页面元素:
    1、子页面获取iframe父页面的DOM
    jQuery获取:
    $("#holder",parent.document)

    js获取:
    parent.document.getElementById("holder")  

    2、子页面获取父页面里的其他iframe子页面里的DOM
    jQuery获取:
    $("#holder",window.parent.frames["holder"].document)

    js获取:
    window.parent.frames["holder"].document.getElementById("holder")

    补充:
    opener 与 parent 之间的区别
    opener:
    opener用于在window.open的页面引用执行该window.open方法的的页面的对象。例如:A页面通过window.open()方法弹出了B页面,在B页面中就可以通过opener来引用A页面,这样就可以通过这个对象来对A页面进行操作。

    parent:
    parent用于iframe,frame中生成的子页面中访问父页面的对象。例如:A页面中有一个iframe或frame,那么iframe或frame中的页面就可以通过parent对象来引用A页面中的对象。这样就可以获取或返回值到A页面中。

    总结:
    parent指父窗口,在FRAMESET中,FRAME的PARENT就是FRAMESET窗口。
    opener指用WINDOW.OPEN等方式创建的新窗口对应的原窗口。
    parent是相对于框架来说父窗口对象。
    opener是针对于用window.open打开的窗口来说的父窗口,前提是window.open打开的才有。

    二、跨域:

  • 相关阅读:
    ecshop首页最新评论的调用
    在ECSHOP商品列表页显示每个商品的评论等级和评论数量
    ecshop 系统信息在哪个页面
    ECSHOP去版权_ECSHOP2.7.2去版权方法最新方法
    ECShop 自定义函数以及调用
    ecshop 首页如何调用积分商城里面的的商品
    回到顶部的js代码
    ./flow.php (购物流程)
    C#把字符串转时间格式
    如何将服务端的多个文件打包下载(转)
  • 原文地址:https://www.cnblogs.com/goloving/p/7071093.html
Copyright © 2020-2023  润新知