当前位置: 代码迷 >> JavaScript >> JS 刷新页面全部方法
  详细解决方案

JS 刷新页面全部方法

热度:97   发布时间:2012-10-08 19:54:56.0
JS 刷新页面所有方法
Javascript 刷新页面

window.location.reload();
使用window.open()弹出的弹出窗口,刷新父窗口
非模态刷新父页面?:window.opener.location.reload()
使用window.showDialog弹出的模式窗口
模态刷新父页面???:window.dialogArguments.location.reload();


先来看一个简单的例子:?
???下面以三个页面分别命名为frame.html、top.html、bottom.html为例来具体说明如何做。?
???
???frame.html?由上(top.html)下(bottom.html)两个页面组成,代码如下:?
???<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.0?Transitional//EN">?
???<HTML>?
???<HEAD>?
???<TITLE>?frame?</TITLE>?
???</HEAD>?
???<frameset?rows="50%,50%">?
???<frame?name=top?src="top.html">?
???<frame?name=bottom?src="bottom.html">?
???</frameset>?
???</HTML>?
???
???现在假设top.html?(即上面的页面)?有七个button来实现对bottom.html?(即下面的页面)?的刷新,可以用以下七种语句,哪个好用自己看着办了。?
???
???语句1.?window.parent.frames[1].location.reload();?
???语句2.?window.parent.frames.bottom.location.reload();?
???语句3.?window.parent.frames["bottom"].location.reload();?
???语句4.?window.parent.frames.item(1).location.reload();?
???语句5.?window.parent.frames.item('bottom').location.reload();?
???语句6.?window.parent.bottom.location.reload();?
???语句7.?window.parent['bottom'].location.reload();?
???
???top.html?页面的代码如下:?
???
???
???<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.0?Transitional//EN">?
???<HTML>?
???<HEAD>?
???<TITLE>?top.html?</TITLE>?
???</HEAD>?
???<BODY>?
???<input?type=button?value="刷新1"?onclick="window.parent.frames[1].location.reload()"><br>?
???<input?type=button?value="刷新2"?onclick="window.parent.frames.bottom.location.reload()"><br>?
???<input?type=button?value="刷新3"?onclick="window.parent.frames['bottom'].location.reload()"><br>?
???<input?type=button?value="刷新4"?onclick="window.parent.frames.item(1).location.reload()"><br>?
???<input?type=button?value="刷新5"?onclick="window.parent.frames.item('bottom').location.reload()"><br>?
???<input?type=button?value="刷新6"?onclick="window.parent.bottom.location.reload()"><br>?
???<input?type=button?value="刷新7"?onclick="window.parent['bottom'].location.reload()"><br>?
???</BODY>?
???</HTML>?
???下面是bottom.html页面源代码,为了证明下方页面的确被刷新了,在装载完页面弹出一个对话框。?
???
???bottom.html?页面的代码如下:?
???<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.0?Transitional//EN">?
???<HTML>?
???<HEAD>?
???<TITLE>?bottom.html?</TITLE>?
???</HEAD>?
???<BODY?onload="alert('我被加载了!')">?
???<h1>This?is?the?content?in?bottom.html.</h1>?
???</BODY>?
???</HTML>?
???
???
???解释一下:?
???1.window指代的是当前页面,例如对于此例它指的是top.html页面。?
???2.parent指的是当前页面的父页面,也就是包含它的框架页面。例如对于此例它指的是framedemo.html。?
???3.frames是window对象,是一个数组。代表着该框架内所有子页面。?
???4.item是方法。返回数组里面的元素。?
???5.如果子页面也是个框架页面,里面还是其它的子页面,那么上面的有些方法可能不行。?
???
???附:?
???Javascript刷新页面的几种方法:?
???1?history.go(0)?
???2?location.reload()?
???3?location=location?
???4?location.assign(location)?
???5?document.execCommand('Refresh')?
???6?window.navigate(location)?
???7?location.replace(location)?
???8?document.URL=location.href?
???
???
???
???自动刷新页面的方法:?
???1.页面自动刷新:把如下代码加入<head>区域中?
???<meta?http-equiv="refresh"?content="20">?
???其中20指每隔20秒刷新一次页面.?
???
???2.页面自动跳转:把如下代码加入<head>区域中?
???<meta?http-equiv="refresh"?content="20;url=http://www.wyxg.com">?
???其中20指隔20秒后跳转到http://www.wyxg.com页面?
???
???3.页面自动刷新js版?
???<script?language="JavaScript">?
???function?myrefresh()?
???{?
???window.location.reload();?
???}?
???setTimeout('myrefresh()',1000);?//指定1秒刷新一次?
???</script>?
???
???ASP.NET如何输出刷新父窗口脚本语句?
???1.?this.response.write("<script>opener.location.reload();</script>");?
???
???2.?this.response.write("<script>opener.window.location.href?=?opener.window.location.href;</script>");?
???
???3.?Response.Write("<script?language=javascript>opener.window.navigate(''你要刷新的页.asp'');</script>")?
???
???
???JS刷新框架的脚本语句?
???
???//如何刷新包含该框架的页面用?
???<script?language=JavaScript>?
???parent.location.reload();?
???</script>?
???
???
???//子窗口刷新父窗口?
???<script?language=JavaScript>?
???self.opener.location.reload();?
???</script>?
???( 或 <a?href="javascript:opener.location.reload()">刷新</a>?)?
???
???//如何刷新另一个框架的页面用?
???<script?language=JavaScript>?
???parent.另一FrameID.location.reload();?
???</script>?
???
???如果想关闭窗口时刷新或者想开窗时刷新的话,在<body>中调用以下语句即可。?
???
???<body?onload="opener.location.reload()">?开窗时刷新?
???<body?onUnload="opener.location.reload()">?关闭时刷新?
???
???<script?language="javascript">?
???window.opener.document.location.reload()?
???</script>页面刷新弹出重试问题解决方法如果刷新一个已经提交过的页面时,系统总是会提示一个?"重试或取消”的对话框.,如果是一个普通的页面,好象也无所谓,有就有,大不了多点一下.但是当我们是在子窗体中刷新父窗体时,就显得有点多余了.所以就想把这个对话框给去了.找了很的办法.总结一下.

????一,?window.opener.location.reload()?如果改页面没提交过,这个方法好使.但是这个页面一旦提交过后,系统就会提示"重试或取消”的对话框.

????二,?window.opener.location?=?window.opener.location;这个方法肯定不提示,但是有个问题就是分页显示的时候,一刷新总是会显示第一页,这个也是理所当然,因为默认请求的就是第一页

????三,?window.opener.form1.submit();这个方法也不提示了,这个方法就是自动提交页面,绕开那个烦人提示的界面,但是如果被刷新的页面用到了比如gridwiew控件之类的,里面的数据可能不会随着刷新而发生变化,原因就是gridwiew的数据绑定是在某个控件的事件中进行,而页面是通过submit()提交的,不会触发该控件的事件.gridwiew中的数据也是通过读取viewstat中内容获得的,所以在刷新过程中数据不会发生变化.

????四,?window.opener.__doPostBack("?Control","");其中?Control?是控件ID,这个方法就是克服了三的缺点,不用.opener.form1.submit()这样直接提交.不仅让页面自动提交,而且还要想办法让控件的事件也执行.

???注意第四种方法也不是完美的,有的页面是没有这样的控件,有的页面有这个控件但也不能触发数据绑定事件.比如页面数据是随下框内容发生变化的那种页面.因为页面数据是否重新绑定取决于下拉框中内容是否发生变化.而打开子窗体前后时下拉框内容肯定没有变化,所以页面内容也不会变化.???????

????五,针对四,我们可以在父页面用点小技巧,比如在Page_Load中绑定数据时不加IsPostBack判断,但是不好就不好在点按钮时同样的数据会绑定两遍.


如果页面没有form,则不会弹出提示窗口。如果页面有form表单,a)<?form?method="post"?...>?会弹出提示窗口b)<?form?method="get"?...>?不会弹出

1 楼 ws347575294 2011-05-06  
很详细,不错 ,又学到了 。。
我想问一下:就是怎么刷新另外一个框架页面中的内联框架中的页面!
  相关解决方案