(超实用)前端地址栏保存&获取参数,地址栏传输中文不在乱码

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/autoXingJY/p/11596506.html

获取地址栏路径 : window.location

demo1 url拼接参数对象成新url

var linkObj = {
    "uid": 6666,
    "name": "lili",
    "sex": "male"
  }

  var endLink = createURL(url, linkObj);
  // 将一个对象拼接在url的后面:   createURL(url, linkObj)
  function createURL(url, param) {
    var urlLink = '';
    $.each(param, function (item, key) {
      var link = '&' + item + "=" + key;
      urlLink += link;
    })
    urlLink = url + "?" + urlLink.substr(1);
    return urlLink.replace(' ', '');
  }

  console.log("endLink", endLink);

demo2 url提取拼接的参数对象

 var jie = parseQueryString(urlStr);
  console.log("jie", jie);
  // {uid: "2222", name: "xiaoming", sex: "famale"}

  // 解析url 拿到所有参数对象 parseQueryString(urlStr);
  function parseQueryString(url) {
    var result = {};
    if (url.indexOf('?') > -1) {
      var str = url.split('?')[1];
      var temp = str.split('&');
      for (var i = 0; i < temp.length; i++) {
        var temp2 = temp[i].split('=');
        result[temp2[0]] = temp2[1];
      }
    }
    return result;
  }

demo3 从地址栏拿到指定参数

超方便的方法:  通过正则来从地址栏获取指定参数

 // GetQueryString("uid")
  function GetQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]);
    return null;
  }

demo4  地址栏传输中文不在乱码

运行first.html, 将跳转到second.html页面,页面title显示"中文参数".

///first.html页面

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title></title>
</head>

<body>
</body>
<script type="text/javascript">
  /**
   * 这是第一个页面first.html
   * 说明: 1 页面first.html运行,跳转到页面second.html
   * 2 页面first.html跳转到页面second.html过程, 通过地址栏传参的方式传过去了encode了的 "中文参数"
   * 3 页面second.html通过地址栏解码 "中文参数",并展示在页面title上
   * 
   */
  var cnWord = "中文参数";
  var encodeWord = encodeURI(encodeURI(cnWord)); // encode进行参数编码
  window.location.href = "second.html?cnWord=" + encodeWord;
</script>

///second.html页面

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title></title>
</head>

<body>
</body>
<script type="text/javascript">
  var encodeWord = getQueryString("cnWord"); //地址栏获取first.html页面传来的地址url,并decode解码
  var decodeWord = decodeURI(encodeWord); //decode转码
  document.getElementsByTagName("title")[0].innerHTML = decodeWord;



  //获取地址栏参数的方法
  function getQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]);
    return null;
  }
</script>

</html>

如果觉得文章对你有用, 请帮忙点个推荐和收藏 ! Thanks♪(・ω・)ノ

原文地址:https://www.cnblogs.com/autoXingJY/p/11596506.html