用window.showModalDialog打开的子窗口如何将数据用form提交给自己

commanager 2007-11-26 08:34:38
用window.showModalDialog打开一个子窗口 在这个子窗口中实现一个联动下拉框,下拉框中的数据是从数据库中读出的,所以需要向子窗口自身用form提交数据。可我不管怎么写提交后 总是新打开一个页面,也无法将数据返回父窗口。请问该如何向自己提交数据呢?
...全文
489 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tantaiyizu 2007-11-27
  • 打赏
  • 举报
回复
<base target="_self"/>
JK_10000 2007-11-27
  • 打赏
  • 举报
回复
test.htm:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title> JK:支持民族工业,尽量少买X货 </title>
<script language=javascript srcccccc="CommonJSFunction.js">
/**
* This function is to submit a form to ModalDialog.
* JK 2007-03-06
*/
function submitToModalDialog(formObj,dialogTitle,sFeatures){
var dialogArguments=new Array();
dialogArguments["src"]=null;
dialogArguments["title"]=dialogTitle;
dialogArguments["form"]=formObj;
return showModalDialog("DialogFrame.htm",dialogArguments,sFeatures);
}
</script>
</head>
<body>
<form name="frm0" action="test.htm" >
<input type=button value=DialogFrame onclick="var a=new
Array();a['src']='test.htm';window.showModalDialog('DialogFrame.htm',a);"/> <br/>
<input name=q> <input type=button value=DialogFrame onclick="submitToModalDialog(this.form,'JK','');"/> <br/>
<a href="http://jkisjk.spaces.live.com">http://jkisjk.spaces.live.com</a> <br/>
</form>
<hr/>
</body>
</html>

----------------------------

DialogFrame.htm
本页面解决的问题
1。IE设置检查更新为"自动"时dialog里的信息是旧数据
2。dialog里location.href=url导致新开窗口 (另外一个解决办法是dialog里的所有页面加<base target="_self"/>)
3。支持submitToModalDialog

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language=javascript>
var DialogArgument=window.dialogArguments;
//The following code exists for :IE 6 can not change dialog title.
if (DialogArgument && DialogArgument.title) document.write(" <title>"+DialogArgument.title+" </title>");
else document.write(" <title> Dialog </title>");
</script>
</head>
<body leftMargin=0 rightMargin=0 topMargin=0 bottomMargin=0 onload="initFun();" scroll=no>
<iframe name="dialogFrame" src="blank.html" width=100% height=100% id=dialogIframe> </iframe>
<form name="dialogForm" method="post" action="" target="dialogFrame" style="display:onne;">
</form>
</body>
</html>
<script language=javascript>
function initFun()
{
if (DialogArgument!=null){
if(DialogArgument.form!=null){
var argForm=DialogArgument.form;
var tempForm=document.dialogForm;
tempForm.action=argForm.action;
var argFormElements=argForm.elements;
for(var i=0;i <argFormElements.length;i++){
tempForm.insertAdjacentHTML("beforeEnd",argFormElements[i].outerHTML);
}
tempForm.submit();
}
else{
document.dialogForm.action=DialogArgument.src;
document.dialogForm.submit();
}
}
else alert("useDialogFrameWrongly");
}
</script>
commanager 2007-11-27
  • 打赏
  • 举报
回复
我找到了,多谢各位了,~~~~
zsm139 2007-11-26
  • 打赏
  • 举报
回复
查一下这个对象的参数,应该可以设置的,我作过的,现在忘了
commanager 2007-11-26
  • 打赏
  • 举报
回复
怎么没人理的呢?我在线等?请哪位大哥帮帮忙

87,907

社区成员

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

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