首页 > 其他分享 >JS 刷新页面所有方法

JS 刷新页面所有方法

时间:2022-09-27 23:32:16浏览次数:58  
标签:JS reload window html location 刷新 页面

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" οnclick="window.parent.frames[1].location.reload()"><br>
<input type=button value="刷新2" οnclick="window.parent.frames.bottom.location.reload()"><br>
<input type=button value="刷新3" οnclick="window.parent.frames['bottom'].location.reload()"><br>
<input type=button value="刷新4" οnclick="window.parent.frames.item(1).location.reload()"><br>
<input type=button value="刷新5" οnclick="window.parent.frames.item('bottom').location.reload()"><br>
<input type=button value="刷新6" οnclick="window.parent.bottom.location.reload()"><br>
<input type=button value="刷新7" οnclick="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 οnlοad="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 οnlοad="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" ...> 不会弹出

标签:JS,reload,window,html,location,刷新,页面
From: https://blog.51cto.com/u_15809398/5717786

相关文章

  • VueJs 自定义过滤器使用总结
    在这个教程中,我们将会通过几个例子,了解和学习VueJs的过滤器。我们参考了一些比较完善的过滤器,比如orderBy和filterBy。而且我们可以链式调用过滤器,一个接一个过滤。因此,我......
  • vuejs 开发问题解决方案总结一
    文章中提到的很多东西都在我的demo中用到,我的demo地址:​​https://github.com/MrZhang123/Vue_project/tree/master/vue_spa_demo​​1.Vuejs组件vuejs构建组件使用Vue.comp......
  • js循环数组各种方法array 汇总-基础
    js循环数组各种方法array汇总-基础这几天做系统,又用到多维数组循环交叉。所以总结一套以供参考记录1.varmyStringArray=["Hello","World"];2.......
  • 同一个数据源赋值成两个数组、避免数据会相互影响,可使用JSON.parse(JSON.stringify())
        getListCountryJdSc(obj).then((res)=>{        this.SummaryList=res.data.data        this.jdDataList=JSON.pars......
  • JS 模块化- 04 CMD 规范与 Sea JS
    1CMD规范介绍CMD:CommonModuleDefinition,通用模块定义。与AMD规范类似,也是用于浏览器端,异步加载模块,一个文件就是一个模块,当模块使用时才会加载执行。其语法与AMD......
  • nodejs调用外部接口
    前言在日让的工作开发中,我们不仅仅要使用node来封装提供一些http接口,也会在node服务中调用一些第三方的HTTP接口,那么如何操作?request安装依赖npminstallrequest-S......
  • 改变state里面的数据,页面没有及时渲染,需要重复触发才能渲染
    实现功能:页面首次加载,发送请求获取三条数据,每条数据里面又分为3个小数据。通过mapState映射到相应的组件上,在组件中渲染呈现上图的页面。点击查看全部,可重新发送请求,获......
  • jsp内置对象
    内置对象:不需要定义就可以在jsp网页使用的对象让频繁使用的对象更易用 out客户端输出print、printlnintgetRemaincloseflush刷新缓冲区r......
  • vba读写json文件
    '''VBA-JSONv2.3.1'(c)TimHall-https://github.com/VBA-tools/VBA-JSON''JSONConverterforVBA''Errors:'10001-JSONparseerror''@classJsonC......
  • json
    Json:JSON:JavaScriptObjectNotation(JavaScript对象表示法)JSON是存储和交换文本信息的语法。类似XML。JSON是一种轻量级的数据交换格式。它基于(欧洲计算机协......