JS修改链接地址实现页面动态跳转的方法

知识共享许可协议 Creative Commons

网页跳转用原生的JavaScript就可以实现。

至于是跳转至不同的域名,还是跳转至当前域名不同的路径,甚至是将HTTP协议修改为HTTPS协议,这些事情都可以通过JS修改location值可以实现。

如果将location当做是一个对象,以 http://www.yixzm.cn/post 页面为例,那么它的每个成员变量含义如下:

  • location.host: 域名,如 www.yixzm.cn

  • location.hostname: 额,貌似还是域名

  • location.href: 指向当前页面,包含HTTP、HTTPS等协议头的完整链接地址,如 http://www.yixzm.cn/post

  • location.origin: 包含协议头和域名,如 http://www.yixzm.cn

  • location.pathname: 当前域名的路径地址,不包含协议头和域名,如 /post

查阅https://blog.csdn.net/siwangdexie_copy/article/details/83382718可知:

location.host 域名包含端口号信息。

用法

指导location具体的含义,那怎么用呢?

超级简单,比如,我想将地址 http://www.yixzm.cn/post 改为 http://www.yixzm.cn/post/list

只需要:

location.pathname = /post/list

即可,其他location成员变量值类比使用。

出处

那我是怎么知道这些的呢?很简单,在JS代码中将location在console中输出查看值即可。

如 console.log(location),输出信息如下:

Location {replace: ƒ, href: “http://www.yixzm.cn/post”, ancestorOrigins: DOMStringList, origin: “http://www.yixzm.cn”, protocol: “http:”, …}
ancestorOrigins: DOMStringList {length: 0}
assign: ƒ assign()
hash: “”
host: “www.yixzm.cn
hostname: “www.yixzm.cn
href: “http://www.yixzm.cn/post
origin: “http://www.yixzm.cn
pathname: “/post”
port: “”
protocol: “http:”
reload: ƒ reload()
replace: ƒ ()
search: “”
toString: ƒ toString()
valueOf: ƒ valueOf()
Symbol(Symbol.toPrimitive): undefined
proto: Location

截图:

js变量地址对应关系

瞧,就这么简单!

猜你喜欢

转载自blog.csdn.net/dreamstone_xiaoqw/article/details/91901883