问题原因:
最近在使用ymPrompymt消息提示组件编写后台,问题出现在我用一个父窗口 能打开多个子窗口,父窗口和子窗口都有增删改查的功能按钮,当我打开子窗口进行一系列操作后,关闭子窗口,进行父窗口操作时,页面并没有返回到父窗口页面,而是在子窗口页面(具体原因应该是框架封装导致路径识别只识别到子窗口的路径有关)
解决思路:
一:不使用框架封装的方法,自己编写父窗口的增删改,这样就不会在父窗口操作时,识别的是子窗口路径。
二;在关闭子窗口时,强制刷新父窗口,使框架封装路径改变成父窗口路径(事实证明我猜对了)
具体做法就是监听回调,然后再回调中再次提交父页面
代码展示:
function searchEnterprisercInfo(){ var temp = document.getElementsByName("ids"); var pkValue = ''; var selCount = 0; for (var i =0; i<temp.length; i++){ if(temp[i].checked){ selCount++; pkValue = temp[i].value; } } if(selCount==1){ window.top.ymPrompt.win({message:'${basePath}suyuanShopQualification/list.do?id='+pkValue+'&r='+Math.random(),700,height:900,title:'企业资质信息',maxBtn:false,minBtn:true,handler,iframe:true}); window.top.ymPrompt.max(); } else if(selCount>1){ window.top.ymPrompt.errorInfo("该操作最多只能选择一条记录",null,null,"提示信息"); } else if(selCount<1){ window.top.ymPrompt.errorInfo("请选择一条记录",null,null,"提示信息"); } }
ymPrompt.win自定义窗口,其中添加handler(回调)
//关闭子窗口刷新父窗口
function handler(tp){
if(tp=='close'){
document.getElementById("tableForm").submit();
}
}
在回调中进行父页面from提交起到刷新页面的效果(我试了很多刷新页面的方法,都是把父页面给刷没了,或者是无法回显父页面查询的条件)
父窗口
子窗口