layer 弹层组件下的 iframe 交互详细教程

提问 未结
60 43005
小魔方
悬赏:100飞吻
回帖
  • Steed
    2017-4-17
    感觉很早就不提倡用iframe,为什么现在还是很多都在用
    9 回复
  • 小魔方
    小魔方 VIP2 (社区之光)
    2017-5-5
    // top 页面
    layui.use(['a', 'b'], function(){
    var _tools = {
    func1: function() {
    console.log('func1');
    }
    }

    _tools.func1();

    window._tools = _tools;
    })

    // iframe 页面
    top._tools.func1();
    3 回复
  • @Steed 不用那用啥
    1 回复
  • 这样可以的吗?幸好明天周六日,可以重新写。。。这是我从这边找到的模板直接往上改的,看到上面就是直接用的两个,一个layui,一个bootstrp.....
    1 回复
  • 小魔方
    小魔方 VIP2 (社区之光)
    2017-5-5
    @野生高富帅 top 和 iframe 之间貌似 trigger 不上去。。。反正我是没听说过

    iframeWin.layui.layer
    iframeWin.layui.jquery
    iframeWin.layui.form()
    iframeWin.layui.element()
    1 回复
  • @小魔方 可以了!非常感谢![偷笑]
    1 回复
  • 我忘了
    2017-5-13
    form表单鼠标移开后怎么马上校验?
    1 回复
  • 空惗
    2017-4-17
    [太开心] 很好啊。 收藏了
    0 回复
  • hahha
    2017-4-20


    主要是第三行代码,页面中的单选和多选按钮出不来,我已经是按照模板来写的,麻烦解决下,谢谢@小魔方
    0 回复
  • @Steed 不要人云亦云,不用别人提供的的前提是你有更好的实现方式和能力
    0 回复
  • 页面中的 iframe 相交互后,但是我这边动态tab点击关闭等效果失效了,一般是什么地方的原因呢?
    0 回复
  • Steed
    2017-4-21
    @野生高富帅 我没用iframe 用的vue
    0 回复
  • 小魔方
    小魔方 VIP2 (社区之光)
    2017-4-21
    0 回复
  • @小魔方 我这边在做一个医院的后台,刚看到这个框架并不兼容IE6-7-8,那我在再用上Bootstrap应该没问题吧?。。。
    0 回复
  • 小魔方
    小魔方 VIP2 (社区之光)
    2017-4-21
    @阳光下的码农 你就直接用 bootstrap 就行了,不需要 用倆
    0 回复
  • 小魔方
    小魔方 VIP2 (社区之光)
    2017-4-21
    @阳光下的码农 加油吧,做事情先计划好
    0 回复
  • @小魔方 嗯嗯,涨经验了~~~我会努力的!谢谢
    0 回复
  • 不错偶,涨经验了,值得收藏
    0 回复
  • 小柒358
    2017-4-27
    0 回复
  • Dick
    2017-5-2
    @Steed ajax异步调用吗?
    0 回复
  • @小魔方 没有讲iframe之间的传值啊 如果用rest风格的话,这种操作方式好像就不行了,还是需要用js传值啊
    0 回复
  • 小魔方
    小魔方 VIP2 (社区之光)
    2017-5-5
    @野生高富帅 「rest风格」是什么东西
    都可以拿到 iframe 的 window 对象了,操作里面的变量就是 对象.变量名,操作里面的节点就是 window.doucment.getEle...
    0 回复
  • @小魔方 你的意思是说 不用trigger一层一层的往上触发,只需要在子iframe中取得顶层的window对象,然后在子iframe中操作这样吗 ? 如果顶层的函数有参数呢,子iframe的操作可以把参数传递进去吗,我用trigger试了一下不行
    0 回复
  • ch493
    2017-5-5
    [嘻嘻]
    0 回复
  • @小魔方 大牛,我刚试了 取到顶层window以后,如果我用的是layui.use这种方式,该怎么调用顶层的方法呢。。
    0 回复
  • @小魔方 是不能trigger还是可以啊。。你这话我听着有歧义,方向不要搞反了。。
    0 回复
  • @小魔方 可以trigger原生的事件,但是不能传递参数,问题在这里。。
    如果用命名空间这样子我估计倒是可以,就是用layui.use这种方式又不知道怎么搞了。。。唉
    0 回复
  • 小魔方
    小魔方 VIP2 (社区之光)
    2017-5-5
    @野生高富帅 「trigger 不上去」哪里歧义了,「可以trigger原生的事件」你是怎么 trigger 的?
    用 layui.use 和以前的 所有代码写到一个闭包里不是一回事么
    0 回复
  • @小魔方 估计是trigger没起作用,然后触发了原生事件。。因为换成triggerHandler就不行了。
    我试了一下直接在子iframe获取到top对象,然后调用的时候提示xxxx不是一个function。。大牛,要不留个QQ,,晚上给我远程一下嘛。。给50红包。。对闭包和命名空间这一块实在是捉急啊
    0 回复
  • 小魔方
    小魔方 VIP2 (社区之光)
    2017-5-5
    @野生高富帅 「直接在子iframe获取到top对象,然后调用的时候提示xxxx不是一个function」
    是因为你认为的这个 top 对象和你想要调用的 function 就没在一个页面
    或者你的这个 function 在 layui.use 里,同时你又没暴露给 window 一个接口
    也就是你就没有弄明白 iframe 之间的关系
    http://fly.layui.com/jie/9320.html 这些个示例你能看明白么
    如果这些能看明白那就应该没什么问题
    0 回复