window.showmodaldialog()苹果浏览器不支持?50分在线求解!!

TommyWu01 2012-05-04 03:44:30
父页面中:


function selectCooperate(obj){
var userObject=new Object();
userObject.userString=document.getElementById(obj).value;
var selectUrl="${ctx}/DispatchAction.do?efFormEname=UITM25&serviceName=TMTask&methodName=selectAssistantUser&orgcode=&orgcodeFilter=${data.rootorg }&taskGuid=${data.taskparentguid}&allLeader=&random="+Math.random();

window.open(selectUrl,'newwindow','height=300,width=1000,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
var a =document.getElementById("i-0-valueString").value;
if(a!=undefined){

document.getElementById(obj).value=a;
selectCooperate_view(obj+"_view",a);
}

}


子页面中:



function okOrgUser(){
var users=document.getElementById("user_select");
var userString="";
for(var i=0;i<users.options.length;i++){
var currentOption=users.options[i];
if(i!=0)
userString+=";";
userString+=currentOption.value+",";
userString+=currentOption.userName+",";
userString+=currentOption.orgcode+",";
userString+=currentOption.orgname;
}

window.opener.document.getElementById("i-0-valueString").value=userString; //i-0-valueString 父页面中的文本框
window.close();

}



问题是:window.opener.document.getElementById("i-0-valueString").value=userString; 赋值成功后,父页面需再重新打开子页面再关闭才能看到值。





...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
a312983516 2012-05-04
  • 打赏
  • 举报
回复
一楼说的很好了

那我就推荐一下用ymPrompt插件吧 封装的很好 包括打开页面 和 回调函数等等! 还有其他功能 狠好用 界面能得到美化!
TommyWu01 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你的代码中,并没有用showmodaldialog(),而是open()新窗口。

这样的话,主窗口的代码会继续往下执行,所以:
var a =document.getElementById("i-0-valueString").value;
得到的是子窗口还没修改的值。

所以在你的另一个帖子里面,建议你修改为子窗口调用父窗口回调函数来处理所有赋值逻辑的模式。
[/Quote]

谢谢啊
TommyWu01 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你的代码中,并没有用showmodaldialog(),而是open()新窗口。

这样的话,主窗口的代码会继续往下执行,所以:
var a =document.getElementById("i-0-valueString").value;
得到的是子窗口还没修改的值。

所以在你的另一个帖子里面,建议你修改为子窗口调用父窗口回调函数来处理所有赋值逻辑的模式。
[/Quote]
恩,是的,现在解决了。


MiceRice 2012-05-04
  • 打赏
  • 举报
回复
你的代码中,并没有用showmodaldialog(),而是open()新窗口。

这样的话,主窗口的代码会继续往下执行,所以:
var a =document.getElementById("i-0-valueString").value;
得到的是子窗口还没修改的值。

所以在你的另一个帖子里面,建议你修改为子窗口调用父窗口回调函数来处理所有赋值逻辑的模式。

81,116

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧