artdialog 弹窗关闭之后传值给原窗口

时间:2021-02-03 23:40:01
如题,我在原页面a上点击按钮出现弹窗b,b页面显示的是一个有数据的列表,选择一个之后想要将在b页面上选择的那条数据带到a页面上,别的都可以,就是卡在了从b页面传值给a页面,求大神

12 个解决方案

#1


window.showModalDialog  用 window.returnValue

window.open  就直接用 window.opener 代表父窗口 可以给父窗口的任何值赋值

#2


引用 1 楼 qq840727854 的回复:
window.showModalDialog  用 window.returnValue

window.open  就直接用 window.opener 代表父窗口 可以给父窗口的任何值赋值


我用的art.dialog.open(URL, ....)打开的弹窗 好像类似于第二种

#3


引用 2 楼 Silen___wang 的回复:
Quote: 引用 1 楼 qq840727854 的回复:

window.showModalDialog  用 window.returnValue

window.open  就直接用 window.opener 代表父窗口 可以给父窗口的任何值赋值


我用的art.dialog.open(URL, ....)打开的弹窗 好像类似于第二种


那就都用下 试试呗

#4


引用 3 楼 qq840727854 的回复:
Quote: 引用 2 楼 Silen___wang 的回复:

Quote: 引用 1 楼 qq840727854 的回复:

window.showModalDialog  用 window.returnValue

window.open  就直接用 window.opener 代表父窗口 可以给父窗口的任何值赋值


我用的art.dialog.open(URL, ....)打开的弹窗 好像类似于第二种


那就都用下 试试呗


试了几种还是不行,能说的更详细点吗,  .opener方法写在那个页面,值怎么传

#5


.opener写在子窗口呀。。 window.opener  顾名思义 就是  这个窗口的打开者 就是父窗口。。  你的 window.opener 就相当于父窗口的 window  所以 你可以 通过 window.opener  来给父窗口的 一些全局变量赋值  。。再试试? 

#6


怕你 误解  再 解释下,  用 window.open 打开的话 父窗口 是不挂起的
 也就是说 var  returnVale=window.open("") 这样子   returnValue 是得不到值的   

父窗口的程序会一直运行下去 不会等你子窗口 关闭后再继续运行, 

如果想给父窗口 赋值  比如   你在父窗口 定义一个  window.returnValue="";

然后在子窗口 window.opener.returnValue="dasdadas";

这样子父窗口就会得到值了。

#7


引用 6 楼 qq840727854 的回复:
怕你 误解  再 解释下,  用 window.open 打开的话 父窗口 是不挂起的
 也就是说 var  returnVale=window.open("") 这样子   returnValue 是得不到值的   

父窗口的程序会一直运行下去 不会等你子窗口 关闭后再继续运行, 

如果想给父窗口 赋值  比如   你在父窗口 定义一个  window.returnValue="";

然后在子窗口 window.opener.returnValue="dasdadas";

这样子父窗口就会得到值了。



父窗口代码

var URL = "${ctx}/xzdwxx/xzdwxx_queryDwxxByDwmc.do?dwmc=" + dwmc;
    var obj = {
  title: '选择单位名称', 
  width: 640 , 
  height: 600,
  close:function(){
  alert(art.dialog.returnValue);
  }
}
art.dialog.open( URL , obj ); 


子窗口代码

function select(id){
art.dialog.opener.returnValue=id;
art.dialog.close();
}


父窗口弹窗打印的是 未定义 哪里错了吗

#8


是 window.opener   是undefine 是吧  那就是  不是 window.open

#9


你的这个问题解决没?、
A页面一个控件,调用B页面,然后B页面返回值可以处理。
方法如下:A页面定一个带参数的方法,然后B页面在关闭时,调用A页面定义的这个方法,并传递参数值,即可。
A页面方法  funcation abc(aa,bb){处理代码}
B页面调用 artDialog.opener.abc('123','456');
就行了。
我现在也遇到问题了,是A页面有多个地方调用B页面,然后B页面返回

#10


在父页面声明全局变量 var returnValue=“ ”,子页面用art.dialog.opener.returnValue=值,关闭子页面窗口,在父页面弹alert(returnValue)

#11


秋思王子说的对! 证实可行!弹窗有多重方式。window.open的对于一的方法可行。但是用art.openDialog()就得用这个了!

#12


art.Dialog里应该是有例子吧

#1


window.showModalDialog  用 window.returnValue

window.open  就直接用 window.opener 代表父窗口 可以给父窗口的任何值赋值

#2


引用 1 楼 qq840727854 的回复:
window.showModalDialog  用 window.returnValue

window.open  就直接用 window.opener 代表父窗口 可以给父窗口的任何值赋值


我用的art.dialog.open(URL, ....)打开的弹窗 好像类似于第二种

#3


引用 2 楼 Silen___wang 的回复:
Quote: 引用 1 楼 qq840727854 的回复:

window.showModalDialog  用 window.returnValue

window.open  就直接用 window.opener 代表父窗口 可以给父窗口的任何值赋值


我用的art.dialog.open(URL, ....)打开的弹窗 好像类似于第二种


那就都用下 试试呗

#4


引用 3 楼 qq840727854 的回复:
Quote: 引用 2 楼 Silen___wang 的回复:

Quote: 引用 1 楼 qq840727854 的回复:

window.showModalDialog  用 window.returnValue

window.open  就直接用 window.opener 代表父窗口 可以给父窗口的任何值赋值


我用的art.dialog.open(URL, ....)打开的弹窗 好像类似于第二种


那就都用下 试试呗


试了几种还是不行,能说的更详细点吗,  .opener方法写在那个页面,值怎么传

#5


.opener写在子窗口呀。。 window.opener  顾名思义 就是  这个窗口的打开者 就是父窗口。。  你的 window.opener 就相当于父窗口的 window  所以 你可以 通过 window.opener  来给父窗口的 一些全局变量赋值  。。再试试? 

#6


怕你 误解  再 解释下,  用 window.open 打开的话 父窗口 是不挂起的
 也就是说 var  returnVale=window.open("") 这样子   returnValue 是得不到值的   

父窗口的程序会一直运行下去 不会等你子窗口 关闭后再继续运行, 

如果想给父窗口 赋值  比如   你在父窗口 定义一个  window.returnValue="";

然后在子窗口 window.opener.returnValue="dasdadas";

这样子父窗口就会得到值了。

#7


引用 6 楼 qq840727854 的回复:
怕你 误解  再 解释下,  用 window.open 打开的话 父窗口 是不挂起的
 也就是说 var  returnVale=window.open("") 这样子   returnValue 是得不到值的   

父窗口的程序会一直运行下去 不会等你子窗口 关闭后再继续运行, 

如果想给父窗口 赋值  比如   你在父窗口 定义一个  window.returnValue="";

然后在子窗口 window.opener.returnValue="dasdadas";

这样子父窗口就会得到值了。



父窗口代码

var URL = "${ctx}/xzdwxx/xzdwxx_queryDwxxByDwmc.do?dwmc=" + dwmc;
    var obj = {
  title: '选择单位名称', 
  width: 640 , 
  height: 600,
  close:function(){
  alert(art.dialog.returnValue);
  }
}
art.dialog.open( URL , obj ); 


子窗口代码

function select(id){
art.dialog.opener.returnValue=id;
art.dialog.close();
}


父窗口弹窗打印的是 未定义 哪里错了吗

#8


是 window.opener   是undefine 是吧  那就是  不是 window.open

#9


你的这个问题解决没?、
A页面一个控件,调用B页面,然后B页面返回值可以处理。
方法如下:A页面定一个带参数的方法,然后B页面在关闭时,调用A页面定义的这个方法,并传递参数值,即可。
A页面方法  funcation abc(aa,bb){处理代码}
B页面调用 artDialog.opener.abc('123','456');
就行了。
我现在也遇到问题了,是A页面有多个地方调用B页面,然后B页面返回

#10


在父页面声明全局变量 var returnValue=“ ”,子页面用art.dialog.opener.returnValue=值,关闭子页面窗口,在父页面弹alert(returnValue)

#11


秋思王子说的对! 证实可行!弹窗有多重方式。window.open的对于一的方法可行。但是用art.openDialog()就得用这个了!

#12


art.Dialog里应该是有例子吧