javascript刷新页面的几种方法...
时间:2010-08-18 来源:lshxy320
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
------------------------------------------------------------------------------------------------------
区别window.location.Reload()和window.location.href=window.location.href;
<a onclick="javascript:window.location.href=window.location.href;">
<a onclick="javascript:window.location.reload();">
测试效果一样。表单没有提交。
<input type="submit" onclick="javascript:window.location.reload();" value="单击" id="btnVCode" />
<input type="submit" onclick="javascript:window.location.href=window.location.href;" value="单击" id="btnVCode" />
都提交数据
window.location.Reload()应该是刷新.(如果有数据提交的话,会提示是否提交的(是和否选项))
window.location.href=window.location.href; 是定向url提交数据
最好不要用location.reload(),而用location=location比较好,还有在模式窗口(showModalDialog和showModelessDialog)前者不能用。
reload参数有true和false,比较有意思?
-----------------------------------------------------------------------------
2个方法都是刷新父窗口,但是其中还是有奥妙的哦。
window.opener.location.reload();这个方法在强迫父窗口的时候,在有些IE浏览器(比如安全设置高)的情况下,会弹出一个确认对话框,提示是不是要重新再刷新一次页面,这可是比较郁闷的事情哦,我后来把这个方法替换成了window.opener.location.href=window.opener.location.href;
就不会出现那样的问题了。
---------------------------------------------------------------------------
在<body onunload="window.opener.location.reload();"> ,这样在子窗口销毁的时候自动刷新主窗口
--------------------------------------------------------------------------
“前进” 与“后退”
function back()
{
window.history.back()
}
function forward()
{
window.history.forward()
}
function back2()
{
window.history.go(-2)
}
function forward2()
{
window.history.go(2)
}
-----------------------------------------------------------
js刷新窗口:window.location.replace(window.location.href)
window.location.reload();
window.history.go(0);
window.location.assign(window.location.href)
window.location.href和window.location.replace的区别:
1.html -> 2.html -> 3.html
系统从1.html到2.html后,2中有两个按钮,btn1是window.location.href=3.html, btn2是window.location.replace(3.html), 当点击btn1后在3中用window.history.go(-1);window.history.back();返回的是1.html,
而点击btn2进入3时,用window.history.go(-1);wondow.history.back();返回的是2.html
--------------------------------------------------------
window.location.href和window.location.replace的亲身体验与区别
当用window.location.href是使用window.history.go(-1)或window.history.back()是管用的
当用window.location.replace('url')是使用window.history.go(-1)或window.history.back()是不管用的
window.location.replace("3.jsp");是不向服务器发送请求的跳转
window.history.go(-1);window.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的
window.location.href("3.jsp");是向服务器发送请求的跳转,window.history.go(-1);wondow.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的
有3个jsp页面(1.jsp, 2.jsp, 3.jsp),进系统默认的是1.jsp ,当我进入2.jsp的时候, 2.jsp里面用window.location.replace("3.jsp");与用window.location.href("3.jsp");从用户界面来看是没有什么区别的,但是当3.jsp页面有一个“返回”按钮,调用window.history.go(-1);wondow.history.back();方法的时候,一点这个返回按钮就要返回2.jsp页面的话,区别就出来了,当用window.location.replace("3.jsp");连到3.jsp页面的话,3.jsp页面中的调用window.history.go(-1);wondow.history.back();方法是不好用的,会返回到1.jsp 。当用window.location.href("3.jsp");连到3.jsp页面的话,3.jsp页面中的调用window.history.go(-1);wondow.history.back();方法是好用的,会返回2.jsp。因为window.location.replace("3.jsp");是不向服务器发送请求的跳转,而window.history.go(-1);wondow.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的,所以会跳到系统默认页面1.jsp 。window.location.href("3.jsp");是向服务器发送请求的跳转,window.history.go(-1);wondow.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的,所以就可以返回到2.jsp。
--------------------------------------------------------
<input type=button value=刷新 onclick="window.location.reload()">
<input type=button value=前进 onclick="window.history.go(1)">
<input type=button value=后退 onclick="window.history.go(-1)">
<input type=button value=前进 onclick="window.history.forward()">
<input type=button value=后退 onclick="window.history.back()">
后退+刷新
<input type=button value=后退 onclick="window.history.go(-1);window.location.reload()">
在C# Web程序中,如为页面按钮写返回上一页代码
this.RegisterClientScriptBlock("E", "<script language=javascript>history.go(-2);</script>");
其中,history.go(-2),要写为-2,因在按钮事件触发前,已刷新一次页面,所以应是-2。
Response.Write("<script language=javascript>history.go(-2);</script>");
此处也要写为“-2”。跟直接写脚本的有所不同。
history.back()是会上一页
i=1
history.go(i)去指定的某夜
如果是history.go(0)那就是刷新
这两个属于JS代码,相当于IE的前进、后退功能。
具体的用处就要看什么时候需要这个就用上。比如用户注册时的验证是后台验证,不符合要求的时候就可以用这个,可以最大限度保证用户少重复输入数据。
例如:载入页面:
function onLoadPage(){
if(event.srcElement.tagName=="SPAN"){
oFrame=top.window.middle.frames[2];
oTxt=event.srcElement.innerText;
switch(oTxt){
case "前 进":
oFrame.history.go(1);
case "后 退":
oFrame.history.back();
case "刷 新":
oFrame.location.reload();
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yuhua3272004/archive/2008/10/21/3118470.aspx