parent.layer.open打开的页面向上个页面传值

平时遇到的传值问题,一般都是父子页面,父页面定义一个全局的方法,类似

functionName = function(){} 

然后再子页面就可以通过parent来调用。

window.parent.functionName()

那么对于parent.layer.open打开的页面,如何向上个页面传值呢?检查dom发现,parent方式打开的iframe和上个页面的iframe是同级关系。

parent.layer.open打开的页面向上个页面传值_第1张图片
image.png

既然是同级关系,那么 parent肯定不能用了,可以直接获取上个页面的dom元素,直接修改。
首先需要把上个页面的 Layer Index获取到,传递到子页面中,赋值给一个隐藏域。

//获取当前页面的Index
  var layerIndex = parent.layer.getFrameIndex(window.name);
           parent.layer.open({
                title: '打开子页面',
                type: 2,
                content: '/asp/controller?&layerIndex='+layerIndex,
                area: ['60%', '70%'],
                Boolean: true,
                resize: true,
                shadeClose: true
            });

然后就是在后打开的页面点击按钮或者什么操作,把数据传递给上个页面,首先就是获取传递过来的layerIndex,然后通过getChildFrame方法获取上页面的body的dom元素,有dom了,直接找到对应的元素赋值就好了,代码如下。

    var index = $("#layerIndex").val(); //获取上个页面传递过来的layerIndex
    var body = parent.layer.getChildFrame('body', index); //获取上个页面的body元素。
    body.children().find('#inputId').val("hello");//赋值

欢迎关注微信公众号爱游戏爱编程获取更多资讯。

image.png

你可能感兴趣的:(parent.layer.open打开的页面向上个页面传值)