artdialog4.1.7中父页面给子页面传值时看了一些网友的解决方法:
在父页面声明全局变量 var returnValue=“ ”,子页面用art.dialog.opener.returnValue=值,关闭子页面窗口,在父页面弹alert(returnValue)
但一直未定义。
修改后:
在父页面声明全局变量 var returnValue=“ ”,子页面用art.dialog.opener[0].returnValue=值,关闭子页面窗口,在父页面弹alert(returnValue)
就可以了
后调试发现
art.dialog.opener[0]->父窗体
art.dialog.opener[1]->当前窗体
当有多个父级时以此类推 例3个窗体 0->最父 1->2父 2->当前窗体(此描述存在问题,问题已经发现并重新描述,请往下看)
/***************2016.1.7修改********************/
最近在项目中又写了上面的方法,发现在ie上存在问题,后发现上面所述存在问题,
上面所述的父页面弹出子页面的方法用的是window.top.art.dialog.open(...)弹出的。而项目中使用了iframe框架,所以上诉的 art.dialog.opener[0]->父窗体 是存在问题的
art.dialog.opener是相对于弹出页面的子窗体,而window.top.art.dialog.open(...)是使用了最外层框架进行弹出的,所以 art.dialog.opener[0]->iframe窗体,art.dialog.opener[1]->iframe中又弹出的子窗体。
现在我一律修改成了art.dialog.open(...),直接在本页面弹出,而在子页面获取或修改父页面的值只需要art.dialog.opener即可。