对话框弹出的位置引发的问题showdialog

今天碰到了了这段代码:

if(type==0)//在父页面显示对话框,即基于父页面操作,需要注意的是,子页面的变量,父页面是直接获取不到的,即type在父页面并没有被定义的
    {
	parent.showDialog(title,href);
    }else{
	parent.parent.showDialog(title,href);//在父页面的父页面显示对话框,即基于父页面的父页面进行操作
}

一切顺利之后,会调用最底层子页面的onSuccess()函数:

onSuccess:function(object){
	addOrUpdate(object);
}

现在的问题是:

最底层子页面,父页面,父页面的父页面都引入了相同的JS,这个共同的JS中都有addOrUpdate(object);方法,那么究竟是调用那一个页面的方法??

首先执行成功之后调用子页面的onSuccess()函数不会改变目标,即开始在哪个页面操作,执行这儿onSuccess函数之后还是在哪个页面操作,所以关键在看对话框是在哪里弹出来的,如果在父页面弹出就调用父页面的addOrUpdate(object)函数;就会去找父页面的id为_list的数据表格,并插入数据.

因为是在父页面的父页面调用了函数,所以代码如下:

onSuccess:function(object){
	if(tpye==0){//在最底层子页面的定义的变量可以取到,但是调用函数是对话框页面的函数
	    document.getElementById('userOrCompany').contentWindow.addOrUpdate(object);
	}else{
	    document.getElementById('userOrCompany').contentWindow.$("#personnel").panel('body').find('iframe')[0].contentWindow.addOrUpdate(object);//调用最底层子页面的函数
	}
}

寻找tab---可以利用

  1. var tab = $('#tt').tabs('getSelected');
  2. <div id="mainTab" class="easyui-tabs">
        <div id="organ" title="部门管理" >
        <div id="jobs" title="岗位管理">
        <div id="personnel" title="员工管理">
     </div>
     可以使用:$("#personnel")来获取tab


你可能感兴趣的:(对话框弹出的位置引发的问题showdialog)