关于layui.each在iframe中的应用出现的问题

讨论 已结 4 1402
岁月小偷
悬赏:50飞吻
因为本人开发过程中基本没使过iframe,所以很多还是一知半解,iframe中的layui.each出问题是更早之前做的一个form的初始化封装的时候单页面没啥问题,尝试了弹出一个iframe form中渲染的时候出了问题,追了一下发现layui.each回调不会执行,换成for就可以了,隐约就感觉到应该是layui.each立马的逻辑还是有点问题或者是我用得不对的,但是也没在意,昨天看到几个问题跟这个有关的比如弹出一个iframe form.val()失效,还有layui.each失效的,但是其实都是同一个问题,就是layui.each本身,追了一下发现问题所在了看动图吧。

可能会觉得是不是用==但是还是false,我认为这个应该是不同的document的问题吧。
测试的关键代码:页面1只有一个按钮点击弹出iframe打开另一个form(完整测试代码: https://pan.baidu.com/s/1zOeg6SQp_phsnQ6QY3qGTw 从testIframePage.html点击弹出testIframeForm.html)

红色框里面是去找到弹出的iframe的window。要渲染的是这个window下的表单,那么就我的理解而言必须是这个window下的layui的form去val()。
测试的关键代码:页面2,只是一个普通的form表单


最关键的来了,如何解决
我的思路是既然是each出的问题,那就得把焦点集中到each本身特别是最上面动图的判断处出现Object 不等于Object的情况,解决的办法是给前后加多个.name,重跑就ok了。

最后的效果

因为对iframe是一知半解,解决是解决了,但是觉得根本原因是不是因为跨document的对比没有可比性导致错了这个就得请大神来解答了[微笑]
回帖