HTML页面之间跳转与传值

原文地址:https://www.cnblogs.com/mingmingcome/p/5926254.html

跳转的方法如下:

方法一:

window.location.href = "b.html";

方法二(返回上一个页面,这个应该不算,先放在这):

window.history.back(-1);

方法三:

self.location = "b.html";

方法四:

top.location = "b.html";

有关问题的思考:

第一,为什么给window.location和window.location.href赋值时一样的,都可以跳转?

思考:

location是location.href的简写,无论是访问值还是赋值。

从功能上,location等于location.href;

但从本体论上,location是一个对象,location.href是它的一个属性。

这种怪异的行为应该是为了兼容无疑。

 

第二,给location赋值的时候,如果跳转的页面不是在同一个目录下,需要把完整的URL写上。如:当前location.href为https://www.google.com/ ,如果要跳转到https://www.baidu.com/, 就不能只是www.baidu.com,必须把URL写完整。

 

传值的方法如下:

方法一:URL传参(?后面的参数)(去哪儿网笔试题,把URL后面的参数解析为对象)

window.location.href = "https://www.google.com/search?q=hello&oq=hello"

 

function parseURL(url){

    var url = url.split("?")[1];

    var para = url.split("&");

    var len = para.length;

    var res = {};

    var arr = [];

    for(var i=0;i<len;i++){

        arr = para[i].split("=");

        res[arr[0]] = arr[1];

    }

    return res;

}

方法二:cookie传参

function setCookie(cname,cvalue,exdays){

    var d = new Date();

    d.setTime(d.getTime() + (exdays*24*60*60*1000));

    var expires = "expires=" + d.toUTCString();

    document.cookie = cname + "=" + cvalue + "; " + expires;

}

 

function getCookie(cname){

    var name = cname + "=";

    var ca = document.cookie.split(";");

    for(var i=0;i<ca.length;i++){

        var c = ca[i];

        while(c.charAt(0)==' '){

            c = c.substring(1); 

        }

        if(c.indexof(cname) == 0){

            return c.substring(name.length,c.length);

        }

    }

    return "";

}

方法三:H5中Web Storage中的localStorage对象

 

localStorage.setItem("lastname","lu");

或者

localStorage.lastname = "lu";

 

localStorage.getItem("lastname");

或者

localStorage.lastname;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值