1 | 转载自:https://juejin.im/post/5d6520796fb9a06ad5472d96 |
window.location(.href)=”URL”
其实 .href
可以省略
window.location
和 window.location.href
实现的效果是一样的
例如:
1 | window.location = "http://www.baidu.com" |
上面两种方法都可以从当前页面跳转到目标页面
不同之处在于 window.location
返回的是对象,如果没有.href
,它的默认参数就是href
winodw.location.assign(“URL”)
这个方法和上面的方法差不多
用法:
1 | winodw.location.assign("http://www.baidu.com") |
window.location.replace(“URL”)
如果用window.location.replace("http://www.baidu.com")
实现跳转页面, 它和上面方法的区别在于它跳转后不会保存跳出页面的信息.
所以如果使用 history
历史返回按钮是无效的
它的效果类似于在网页上点击右键, 在新窗口打开或新标签页打开.
而 window.location.href
实现的效果是在页面上点击目标链接, 然后可以点击历史返回按钮, 返回到之前页面。
历史页跳转
下面的两种方法都可以实现返回历史页,相当于点了页面左上角的返回按钮
1 | window.history.back(); |
back
和go
里面都可以放数值
例如:里面放上 -1
意思就是返回上一级,里面放上 -2
就是返回上上级,以此类推
而且里面还可以放上指定的路由路径,比如 window.history.go('../routes/admin/');
这样可以跳转到指定的路由模块
meta refresh
如果用户浏览器禁用了javascript
, 那么可以用meta refresh
来实现自动跳转:果要实现 JS 自动跳转,可以加个定时器:
1 | <noscript> |
如果要实现 JS 自动跳转,可以加个定时器:
1 | setTimeout(function(){ ... }, 1000); |
重新加载本页
如果你的代码逻辑执行完了,想要重新加载页面的话,可以用这两种方法:
1 | window.location.reload() |
这两种方法都可以重新加载本页,但是replace()
可以导向另外一个URL
例如:window.location.replace("http://www.baidu.com")
window.navigate(‘URL’)
window.navigate('URL')
这个方法是只针对IE
的,不适用于火狐等其他浏览器,在HTML DOM Window Object中,根本没有列出window.navigate
这个方法,所以这个方法尽量少用,遗忘最好。
self、parent、this、top
1 | top.location.href=”url” 在顶层页面打开url(跳出框架) |
if (top.location == self.location)
判断当前location
是否为顶层 来禁止frame
引用,如果页面当中有自定义的frame
的话,也可以将parent self top
换为自定义frame
的名称 ,效果就是在自定义frame
窗口打开url
。
示例:
1 | if(top != self){ |
以下是从网上找到的一个例子,不是很直观, 你可以加上上面那三行代码, 可以先去掉, 再加上, 看一下效果,应该就清楚了
top.html代码
1 | <script language=javascript> |
test.html代码
1 | <FRAMESET COLS="150,*"> |
尝试一下,可能是这样的效果!
top
表示主窗口,location
表示当前窗口,如果你的文件只有一个框架,没有iframe
和frame
,那么是完全一致的,没有区别。
top.location
是在顶层frame
中打开新页window.location
是在当前frame
中打开新页parent.location
在当前窗口的父窗口打开Url地址
JS页面跳转和刷新的常用方式
页面跳转
1 | window.location.href="index.php"; |
Javascript页面刷新
1 | 1 history.go(0) |
自动刷新
页面自动刷新:把如下代码加入
<head>
区域中<meta http-equiv="refresh" content="2">
其中2指每隔2秒刷新一次页面.
页面自动跳转:把如下代码加入
<head>
区域中<meta http-equiv="refresh" content="2;url=http://www.baidu.com">
其中2指隔2秒后跳转到http://www.baidu.com
页面
JS实现页面自动刷新
1 | <script language="JavaScript"> |
jquery方法
1 | $(location).attr('href', 'http://www.jb51.net'); |