[求助] 弹窗的页面如何刷新父页面?

Matumoto 2008-11-15 09:29:58
弹窗的页面如何刷新父页面?

window.parent.reload();
window.parent.location.reload();
window.parent.reload = true;
window.parent.location.href="xx.aspx";

都试过了没用。
...全文
487 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
张dozen 2008-12-29
  • 打赏
  • 举报
回复
受教了,模态对话框
  • 打赏
  • 举报
回复
不是你子页面的问题
是你父页面的问题
你的父页面是不是用onload自动打开子窗口的
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 Matumoto 的回复:]
<body onUnload="window.dialogArguments.location.reload()">

谢谢,这段代码很好,问题解决了,但为什么子页面关不掉呢?关掉后,自动又打开一个新的。
[/Quote]

你的窗口是不是onload自动打开的??
如果那肯定要先打开一个了
Matumoto 2008-11-16
  • 打赏
  • 举报
回复

<!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><title>
无标题页
</title></head>
<body onUnload="window.dialogArguments.location.reload()">
<form name="form1" method="post" action="InventoryEditor.aspx?StyleNo=615070-B&ColorNo=1" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTc1NTQ0NDI0OGRk" />
</div>

<div>
<p>
<span>图片链接:</span><br />
<input name="txtImageUrl" type="text" id="txtImageUrl" style="width:400px;" />
</p>
<p>
<span>价格状态:</span><br />
<select name="dropPriceStatus" id="dropPriceStatus">
<option selected="selected" value="1">涨价</option>
<option value="2">降价</option>
<option value="3">清仓</option>

</select>
</p>
<p>
<span>价        格:</span><br />
<input name="txtPrice" type="text" value="46" id="txtPrice" />
</p>
<p>
<input type="submit" name="btnSubmit" value=" 提 交 " onclick="window.close();" id="btnSubmit" />
</p>
</div>
</form>
</body>
</html>

这是子页面的代码,不知道那里有问题,关不掉。
s_hluo 2008-11-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 Matumoto 的回复:]
<body onUnload="window.dialogArguments.location.reload()">

谢谢,这段代码很好,问题解决了,但为什么子页面关不掉呢?关掉后,自动又打开一个新的。
[/Quote]

试试在弹出页面的<Head></Head>之间加了<base target="_self"/>
不悲不喜 2008-11-16
  • 打赏
  • 举报
回复
估计还是你程序自身的问题。
你该不会在父窗口的onload事件中打开的子窗口吧?

另外,
虽然在子窗口的unload事件中也可以完成对于父窗口的刷新,
但不推荐这样做,
这样会使父窗口,子窗口具有耦合性。
Matumoto 2008-11-16
  • 打赏
  • 举报
回复
<body onUnload="window.dialogArguments.location.reload()">

谢谢,这段代码很好,问题解决了,但为什么子页面关不掉呢?关掉后,自动又打开一个新的。
不悲不喜 2008-11-15
  • 打赏
  • 举报
回复
下面这个例子,你可以看到,在弹出窗口中按下refresh按钮后,
父窗口一直处于等待等待状态,
看到了窗口被关闭后才被刷新.

1.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body onload="alert(1);">
<input type="text" value="">
<input type="button" value="open" onclick="window.showModalDialog('./2.html',window);">
</body>
</html>


2.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<script language="JavaScript">
function reloadParent(){
window.dialogArguments.location.href="http://www.sina.com.cn";
}
</script>
<body>
<input type="button" value="refresh" onclick="reloadParent();">
</body>
</html>
不悲不喜 2008-11-15
  • 打赏
  • 举报
回复
showModalDialog是阻塞式的.
所以正确的方法应该是子窗口关闭后刷新.

例如:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body onload="alert(1);">
<input type="text" value="">
<input type="button" value="open" onclick="window.showModalDialog('./2.html',window);window.location.reload();">
</body>
</html>


或者使用window.open和链接打开新窗口.
Matumoto 2008-11-15
  • 打赏
  • 举报
回复
把弹窗页新开了一个页,而父页没有刷新,并且报一个错。
不悲不喜 2008-11-15
  • 打赏
  • 举报
回复
除非你关闭弹出窗口.
否则你无法让父窗口刷新.
Matumoto 2008-11-15
  • 打赏
  • 举报
回复
看看那里有问题?

<input type="submit" name="btnSubmit" value=" 提 交 " onclick="javascript:window.dialogArguments.reload();window.close();" id="btnSubmit" />

对象不支持的属性或方法
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Matumoto 的回复:]
window.showModalDialog
[/Quote]
模态对话框是不能用opener引用父窗口的,而是需要父窗口主动传递指针变量的
这个window.showModalDialog有第二个参数,就是做这个用的,你需要把window穿过去,就是这样
var returnValue=showModalDialog('2.html',window,'dialogWidth:520px;dialogHeight:510px;help:no;center:yes;resizable:no;status:no;scroll:no');
这样在对话框中就可以引用父窗口对象,怎么引用呢,通过window.dialogArguments就可以应用父窗口了。


在body里面加上location <body onUnload="window.dialogArguments.location.reload()">
路人乙e 2008-11-15
  • 打赏
  • 举报
回复
var win = window.open("b.htm");
var refresh = function()
{
window.location.reload();
}

b.htm
parent.refresh();
Matumoto 2008-11-15
  • 打赏
  • 举报
回复
window.showModalDialog
  • 打赏
  • 举报
回复
是模态的?模态的用这些都不行
  • 打赏
  • 举报
回复
你是怎样的弹窗?
不悲不喜 2008-11-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 chinmo 的回复:]
引用 9 楼 syukugai 的回复:
我给他的方法就是关闭后的
仔细看: <body onUnload="window.dialogArguments.location.reload()">
[/Quote]

HOHO.
终于看到了,

:-D.
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 syukugai 的回复:]
showModalDialog是阻塞式的.
所以正确的方法应该是子窗口关闭后刷新.

例如:


HTML code<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body onload="alert(1);">
<input type="text"…
[/Quote]

我给他的方法就是关闭后的
仔细看:<body onUnload="window.dialogArguments.location.reload()">

87,921

社区成员

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

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