求js弹出窗口修改数据然后返回的方法

不管是弹出一个DIV还是弹出一个窗口都可以,我把id给到这个窗口,然后这个窗口加载一个页面(a.cgi),然后显示出来内容,有个表单,提交后窗口关闭,刷新之前的页面... 不管是弹出一个DIV还是弹出一个窗口都可以,我把id给到这个窗口,然后这个窗口加载一个页面(a.cgi),然后显示出来内容,有个表单,提交后窗口关闭,刷新之前的页面 展开
 我来答
趣事情
推荐于2017-09-13 · 知道合伙人互联网行家
趣事情
知道合伙人互联网行家
采纳数:517 获赞数:5452
电脑技术,软件开发。移动开发。网站建设相关专业知识。都可以提供解答和相关技术指导。

向TA提问 私信TA
展开全部
常用两种返回方法:
1.window.showModalDialog(url,args,dialogattrs) 
参数说明: 
url:弹出页面地址 
agrs:主窗口传给对话框的参数,可以是任意类型(数组也可以) 
dialogattrs:弹出窗口的样式参数 
模式对话框用法: 
主窗口:var value =window.showModalDialog('test.jsp',strs,'resizable:yes'); 
弹出框中通过window.returnValue设置返回值。
2。window.open: 
【父窗口】 
代码如下: 
<script> 
function show_child() 

var child=window .open("child.html","child","height=200,width=400,status=yes,toolbar=no,menubar=no,location=no"); 
/* if(!child.closed) 

if(!window .close()) 

var textValue = frm.txt.value; parent.frm0.txt0.value = textValue; 

else 

window .close(); 
child.close(); 

}*/ 

</script> 
<a href="javascript:show_child();">打开子窗口</a> 
<form name=frm0> 
<input type="text" name="txt0" id="txt0"> //注意这里一定要写ID属性不然FF下取不到值 
</form> 
【子窗口】
代码如下: 
<script> 
function choseItem() 

var v=""; 
var check_item = document.frm.item; 
for(i=0;i<check_item.length;i++) 

if(check_item[i].checked) 

v+=","+check_item[i].value; 

document.frm.txt.value=v.replace(/^,{1}/,""); 


function foo() 

window .close(); 
window .opener.document.getElementById("txt0").value=document.getElementById("txt").value 

</script> 
<body> 
<form name=frm> 
<input type=checkbox name=item value=1 onclick="choseItem();">a 
<input type=checkbox name=item value=2 onclick="choseItem();">b 
<input type=checkbox name=item value=3 onclick="choseItem();">c 
<input type=checkbox name=item value=4 onclick="choseItem();">d 
<input type=text name="txt" id="txt"> 
</form> 
<input type=button value="关闭" onclick="foo();"> 
</body>
百度网友935b5f5a63
2011-07-13 · TA获得超过688个赞
知道小有建树答主
回答量:247
采纳率:0%
帮助的人:216万
展开全部
//这是父页面所需脚本,把你的ID传进来
function ShowDialog(ID) {
//生成一段随机数字,如果两次传递的同一个ID的话,弹出的页面是不会刷新的,有了随机数就能刷新了
var temp = "";
for (var i = 0; i < 10; i++) {
temp += parseInt(Math.random() * 10);
}
//弹出模式窗体 三个参数
//第一个是路径,可以是你的CGI路径
//第二个是隐性参数,一般是用来在弹出页面判断是由什么方式打开的,如果是直接打开的弹出页面,是不会有这个参数的
//第三个参数是弹出窗口的参数,高、宽、滚动条
var rv = window.showModalDialog("YourWebPage.html?fk=" + temp + "&id=" + ID, "lock", "dialogHeight:130px;dialogWidth:516px;scroll:yes;");
//判断弹出页面的返回参数,然后跳转至当前页面,相当于刷新
if (rv == "jump")
window.location = "LocalWebPage.html";
}

//以下是弹出页面 所需要写的脚本
window.onload = function () {
var str = window.dialogArguments;
if (str != "lock") {
while (1 == 1) {
alert("请勿直接打开该页面!");
}
}
}

//以下是执行完你的cgi以后使用的脚本
window.returnValue = 'jump';this.close();

//补充,如果弹出页面有回传事件的话,在head中间补上<base target="_self" />,不然会弹出新页面的,表单是需要回传的,所以,请你加上

==================================================================

以下是实例,请将页面保存为A.html和B.html,纯手写

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>父页面</title>
<script type="text/javascript">
function ShowDialog(ID) {
var temp = "";
for (var i = 0; i < 10; i++) {
temp += parseInt(Math.random() * 10);
}
var rv = window.showModalDialog("B.html?fk=" + temp + "&id=" + ID, "lock", "dialogHeight:130px;dialogWidth:516px;scroll:yes;");
if (rv == "jump")
{
alert("这个页面要刷新了!")
window.location = "A.html";
}
}
</script>

</head>

<body>
<button onclick="ShowDialog(1)">弹出</button>
</body>
</html>

==================================================================

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>弹出页面</title>
<base target="_self" />
<script type="text/javascript">
window.onload = function () {
var str = window.dialogArguments;
if (str != "lock") {
while (1 == 1) {
alert("请勿直接打开该页面!");
}
}
}
function closePage()
{
alert('本页面执行完毕!');window.returnValue = 'jump';this.close();
}
</script>
</head>

<body>
<div>父页面问号后面的值,你应该会获取吧?</div>

<button onclick="closePage()">关闭</button>
</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灰人王
2011-07-11 · TA获得超过2456个赞
知道大有可为答主
回答量:2401
采纳率:0%
帮助的人:895万
展开全部
可以在原页面上插入一个iframe对象,一开始是隐藏的,然后让它显示。在表单提交后,通知父窗口将其隐藏,比如在a.cgi的提交事件中写入:
parent.document.getElementById("cgi_page").style.display="none";
parent.window.location.reload();
本来这种需求用ajax是最好的。如果是ajax,那就是另外一种做法。一般是弹出一个div,在里面做一个表单,表单中有一个button,点这个button之后就向服务器发送数据,然后隐藏该div。
这样的话由于都在同一个页面上,所以提交后就不用再引用parent。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangshuaisupin
2011-07-11 · TA获得超过1884个赞
知道小有建树答主
回答量:805
采纳率:100%
帮助的人:1219万
展开全部
这个最好用弹出窗口会简单多了,只要在弹出窗口的提交事件里向页面输出js关闭代码的同时刷新一下父级页面就可以了,代码如下:
parent.location.reload();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式