使用js完成页面跳转

简介: 今天做完了一个项目,其中遇到了很多问题,趁着现在没有新的任务,将自己遇到的一些问题进行总结。其中第一个问题就是使用js实现页面的跳转。1.window.

今天做完了一个项目,其中遇到了很多问题,趁着现在没有新的任务,将自己遇到的一些问题进行总结。其中第一个问题就是使用js实现页面的跳转。

1.window.location.href
// 将js直接写在html中
<button onclick="window.location.href='https://www.baidu.com'">点击跳转</button>

//将js和html分开
<button class="click_btn">点击跳转</button>
<script>
    var myBtn=document.getElementsByClassName('click_btn')[0];
    myBtn.onclick=function(){
        window.location.href="https://www.baidu.com";
    }
</script>

//需要注意的是,这里的window可以省略,即直接使用location.href
<button onclick="location.href='https://www.baidu.com'">点击跳转</button>
2.location.replace
// 将js直接写在html中
<button onclick="location.replace('https://www.baidu.com')">点击跳转</button>

//将js和html分开
<button class="click_btn">点击跳转</button>
<script>
    var myBtn=document.getElementsByClassName('click_btn')[0];
    myBtn.onclick=function(){
        window.location.replace("https://www.baidu.com")
    }
</script>
  • window.location.href 和 location.replace的区别:
    1. 有3个页面 a,b,c。 如果当前页面是c页面,并且c页面是这样跳转过来的:a->b->c
    2. b->c 是通过 window.location.replace("..xx/c") 此时b页面的url会被c页面代替,并且点击后退按钮时会回退到a页面(最开始的页面)
    3. b->c是通过 window.location.href("..xx/c") 此时b页面的路径会被c页面代替,但是点击回按钮后页面回退的是b页面
3.window.navigate("https://www.baidu")
// 将js直接写在html中
<button onclick="window.navigate('https://www.baidu.com')">点击跳转</button>

//将js和html分开
<button class="click_btn">点击跳转</button>
<script>
    var myBtn=document.getElementsByClassName('click_btn')[0];
        myBtn.onclick=function(){
        window.navigate("https://www.baidu.com")
    }
</script>
  • window.location.href 和 window.navigate的区别:
  1. 首先说明的是 window.navigatewindow.location.href 都是实现页面链接跳转的。
  2. window.navigate 这个方法是只针对IE的,不适用于火狐等其他浏览器,在HTML DOM Window Object中,根本没有列出window.navigate这个方法,所以这个方法尽量少用,遗忘最好。
  3. window.location.href 兼容所有浏览器的。因此在实现页面跳转的时候还是使用这个比较靠谱。
4.window.open("https://www.baidu.com")
// 将js直接写在html中
<button onclick="window.open('https://www.baidu.com')">点击跳转</button>

//将js和html分开
<button class="click_btn">点击跳转</button>
<script>
    var myBtn=document.getElementsByClassName('click_btn')[0];
        myBtn.onclick=function(){
        window.open("https://www.baidu.com")
    }
</script>
2.self.location 和 top.location(两者的写法实相同的)
// 将js直接写在html中
<button onclick="top.location.href='https://www.baidu.com'">点击跳转</button>

//将js和html分开
<button class="click_btn">点击跳转</button>
<script>
    var myBtn=document.getElementsByClassName('click_btn')[0];
        myBtn.onclick=function(){
            self.location="https://www.baidu.com";
    }
</script>
  • self.location 和 top.location 的区别和作用:
  1. 两者可以结合起来,防止非法引用我们的网页
  2. 假如你的网页地址是:http://www.a.com,别人的网址是http://www.b.com。他在他的页面用iframe等框架引用你的http://www.a.com
    3.那么你可以用一下代码,来转向你的页面
if(top.location.href!=self.location.href){
  location.href="http://www.a.com";
}

其实使用js实现页面挑战的方式还有很多,这里就不一一进行总结,在实际项目中,推荐大家使用第一种方式进行跳转。

相关文章
|
3月前
|
存储 JavaScript
JS中从a页面跳转到b页面,自动执行一次点击事件
JS中从a页面跳转到b页面,自动执行一次点击事件
|
3月前
|
JavaScript Go
JS中页面跳转的几种方法
JS中页面跳转的几种方法
71 0
|
6月前
|
JavaScript 前端开发 索引
JavaScript中实现页面跳转的七种方法
JavaScript中实现页面跳转的七种方法
501 0
|
3月前
|
存储 JavaScript 前端开发
JS中让二级菜单栏一直保持展开状态,页面跳转也不会改变
JS中让二级菜单栏一直保持展开状态,页面跳转也不会改变
|
8月前
|
JavaScript
JS 页面前进、页面后退、页面跳转的方法
JS 页面前进、页面后退、页面跳转的方法
75 0
|
4月前
|
JavaScript 前端开发
js怎样控制浏览器前进、后退、页面跳转
js怎样控制浏览器前进、后退、页面跳转
|
4月前
Axios有哪些常用的方法?格式是什么?写出两种即可
Axios有哪些常用的方法?格式是什么?写出两种即可
|
7月前
|
JavaScript
JS 页面前进、页面后退、页面跳转的方法
JS 页面前进、页面后退、页面跳转的方法
|
9月前
|
JavaScript Java
JS实现页面跳转并传值
JS实现页面跳转并传值
|
JavaScript 容器
原生JS路由实现页面跳转
写JS原生路由时可从以下几个方面入手 监听a标签,并给href里的url加锚点链接 一般情况下菜单栏的加载模式中,都是通过<a>中的href='/xxxx’来跳转到指定的页面,所以路由的第一步就是监听到此菜单栏中<a href='/xxx'>的点击事件,并在点击时通过event.preventDefault()阻止浏览器的默认行为。阻止默认行为后,咱们就可以通过#/index这种形式给拿到的url加锚 监听hashchange事件,并在监听被触发时加载对应的页面 通过hashchange函数来监听加了锚之后的url(即hash),监听到hash的变化后,我们可以拿到点击时的url,通过调用R
278 0