JS跨页面调用变量的方法

 2023-09-16 阅读 19 评论 0

摘要:2019独角兽企业重金招聘Python工程师标准>>> 在前端开发中,一个B页面需要使用另一个页面A中的变量时,通常采用两种方式,url传参或者本地存储并获取变量的值。 使用url传参,当A页面跳转至B页面时,将变量值拼接在url后面,B

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在前端开发中,一个B页面需要使用另一个页面A中的变量时,通常采用两种方式,url传参或者本地存储并获取变量的值。

  • 使用url传参,当A页面跳转至B页面时,将变量值拼接在url后面,B页面可以使用封装的函数获取url中拼接的变量值。例如: 
    A页面代码:

    window.location.href = B.html?uid=1000;

    在jsp页面中显示变量的值?B页面代码:

    function GetRequest(){var url = window.location.search; //获取url中"?"符后的字串var theRequest = new Object();if (url.indexOf("?") != -1) {var str = url.substr(1);strs = str.split("&");for(var i = 0; i < strs.length; i ++) {theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]);}}return theRequest;
    }//调用方式
    var Request = new Object();
    Request = GetRequest();
    var uid = Request['uid'];  //获取到了url中uid的值1000另外一种方式,比上面的要好用一些
    function GetQueryString(name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");var r = window.location.search.substr(1).match(reg);if (r!=null)return (r[2]);return null;
    }var uid= GetQueryString('uid');
  • 使用本地存储,A页面需要将变量值存储在本地,B页面去本地读取数据,就可以使用这个变量。 
    当A页面与B页面之间没有直接的跳转关系时,使用url传参的方式,就不是很好用了。这种情况下,可以采用本地存储的方式。

    1. cookie的使用在另一篇博客中有详细的介绍,附上链接:前端开发中的cookie使用总结。
    2. localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用,除非用户手动删除,例如清除缓存数据。

      如何在页面之间传递变量?localStorage使用方式如下: 
      A页面:

      // 写入数据
      localStorage.setItem('uid','1000');  //将变量uid(值为1000)存储至本地

      B页面:

      // 读取数据
      localStorage.getItem('uid');  //获取本地存储中uid的值(1000)

      数据的删除:

      //删除某个键值对
      localStorage.removeItem('uid');//清除localStorage的所有内容
      localStorage.clear();
    3. 页面流的内置变量。sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。 
      sessionStorage用法与localStorage相同,只需将localStorage换为sessionStorage即可。例如:sessionStorage.setItem(‘uid’,’1000’);

  • 其他注意事项: 
    1.localStorage只支持string类型的存储,所以当我们需要把JSON存入localStorage中时,需要使用JSON.stringify(),将JSON转换为JSON字符串。 
    例如:

    var data={username:'zzyn',uid:'100000'
    };
    var strData=JSON.stringify(data);
    localStorage.setItem("data",strData); 

    2.读取数据之后,要将JSON字符串转换为JSON对象,利用JSON.parse()方法。

    var data = localStorage.getItem('data');
    var dataObj = JSON.parse(data);

    3.手机浏览器在无痕浏览模式或者隐私模式下,webStorage是无法使用的,需要另行处理。

 

亲,如果您感觉本文有用,请点个赞再走吧✌(>‿◠)!!

转载于:https://my.oschina.net/ZhenyuanLiu/blog/1836479

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/68612.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息