[日常开发问题:2]获取当前页面URL地址,修改再转为URL地址

先说获取本地的地址问题:

需要了解的内容部分:JavaScript Window Location

了解这部分的内容才能够去操作URL,简单了解

window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

window.location 对象在编写时可不使用 window 这个前缀。 一些例子:

location.hostname 返回 web 主机的域名
location.pathname 返回当前页面的路径和文件名
location.port 返回 web 主机的端口 (80 或 443)
location.protocol 返回所使用的 web 协议(http: 或 https:)

具体可参考该位置内容https://www.runoob.com/js/js-window-location.html

直奔主题:获取当前页面的URL地址:获取到的就是一个字符串

<script>
    var strAddress = window.location.pathname;
    console.log("当前页面地址", strAddress);
</script>

将当前获取到的地址进行修改

<script>
    var strAddress = window.location.pathname;
    console.log("当前页面地址", strAddress);
    var AdrressArray = strAddress.split('/'); //去掉'/' 转为数组
    console.log("修改后的数据",AdrressArray);
</script>

 可以发现去除掉 “/”后,之前的地址变为了数组。那么接下来的操作实际上就是js中数组的操作。数组操作内容具体不在详细阐述,只使用我们当前问题中需要使用的方法。

join();

功能:将数组转为字符串并返回转化的字符串数据,不会改变原来的数组;

pop();

功能:删除数组的最后一位,并且返回删除的数据,会改变原来的数组

push();

功能:在数组的最后一位新增一个或多个数据,并且返回新数组的长度,会改变原来的数组

splice();

功能:向数组中添加,或从数组删除,或替换数组中的元素,然后返回被删除/替换的元素。

还是拿数据说话。

<script>
    var strAddress = window.location.pathname;
    console.log(strAddress);
    if (strAddress) {
        var AdrressArray = strAddress.split('/');
        console.log(AdrressArray);
         AdrressArray.splice(0, 3);  //删除一些元素,从下标0开始,到3结束
        console.log(AdrressArray);
        AdrressArray.pop()   //删除尾部元素
        console.log(AdrressArray);
    }
    else {
        console.log("3");
    }
</script>

 通过删除特定的元素后,在控制台所保留的内容就是最下面内容['27133','Desktop','text']这三个内容。接下来进行拼接。通过join()方法

<script>
    var strAddress = window.location.pathname;
    console.log(strAddress);
    if (strAddress) {
        var AdrressArray = strAddress.split('/');
        console.log(AdrressArray);
         AdrressArray.splice(0, 3);  //删除一些元素,从下标0开始,到3结束
        console.log(AdrressArray);
        AdrressArray.pop()   //删除尾部元素
        console.log(AdrressArray);
        var afterSplic=AdrressArray.join('/'); //用于接收拼接后的地址信息
        console.log("更改后的数据",afterSplic);
    }
    else {
        console.log("3");
    }
</script>

以上我们需要的内容就完成了,当然我们还要实现当前的页面地址获取后,进行修改,然后再跳转到另一个页面。

此时我们仍然要用到window.location 中的方法

 window.location.href = window.location.protocol + '//' + window.location.host + afterSplic;  //页面当前地址=协议+//+端口+修改后的地址

此时即可完成页面的跳转。

一个简单示例 

设计描述:两个页面,一个页面上设计一个按钮,点击后通过获取URL地址后,进行数据的修改和拼接,然后进入到另一个页面,另一个页面只作为展示功能使用。

test.html页面

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button onclick="Jump()">点击跳转</button>
</body>

</html>

<script>
    function Jump() {

        var strAddress = window.location.pathname;
        if (strAddress) {
            var AdrressArray = strAddress.split('/');
            console.log(AdrressArray);
            AdrressArray.pop()   //删除尾部元素
            console.log(AdrressArray);
            AdrressArray.push('test2.html'); 
            console.log(AdrressArray);
            var afterSplic = AdrressArray.join('/'); //用于接收拼接后的地址信息
            console.log("更改后的数据", afterSplic);
             window.location.href = window.location.protocol + '//' + window.location.host + afterSplic;
        }
        else {
            console.log("3");
        }
    }
</script>

test2.html页面

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <h1>你好</h1>
</body>

</html>

运行展示:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值