有些时候我们需要从我们的vue项目中跳转到第三方的链接。
坑1不能用路由跳
这时用vue的路由跳转肯定是不行的,因为vue的路由跳转只是自己项目内部的跳转,当要跳转到第三方链接时,比如跳转到百度"www.baidu.com",这已经跳出vue项目了所以不能用路由跳,应该用window.location.href
或者.window.open(a,b) a:外部链接 ,b:打开方式(“_blank”新开一个窗口;“_self”覆盖当前窗口)方式跳转
。
坑2不能直接window.location.href跳
但是当我们用window.location.href
这样直接打开时会出现一个很大的问题:
“我们打开的外部链接会自动拼接我们的源地址,导致网址链接不正确,无法正常访问”
比如:window.location.href='www.baidu.com'
这时跳转过去的地址会是这样的:http://localhost:8080/#/www.baidu.com
从而导致跳转失败
解决办法1
let url = 'www.baidu.com' // 这里的地址前面就不用加协议了'http:// 或者 https://' 下面一句话就是处理这个的。
let path = window.location.protocol + "//" + url
window.location.href = path
封装方法
// 点击方法 url为传入的第三方链接或网址 如'www.baidu.com' url前面不要加协议哦!
jumpUrl(url){
let path=window.location.protocol+'//'+url
window.location.href=path
},
解决办法2
window.open(url, target)
- url : 要跳转的网址 如: http://www.baidu.com
- target: 跳转方式,‘_blank’:在新的窗口打开;‘_self’:在当前页面打开
我是参考这位大佬的