最近项目中遇到一个这样问题,在页面跳转时,追加了location.search,有中文字符,但是在分享第二次时,这个链接无法获取中文字段,变成乱码。

仔细对比,发现在页面分享时,浏览器自动对中文进行了二次加密,所以需要二次解密,才可以获取字段值。

 

eg.   location.href = "index.html?provinceName="+"江苏";

location.search = "?provinceName=%25E6%25B1%259F%25E8%258B%258F%25E7%259C%2581"

 

分享以后:

location.search = "?provinceName= while(provinceName.indexOf('%')>-1){

provinceName= decodeURI(provinceName);

}

也可以做一个公共组件

function(name){

        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');

        var r = location.search.substr(1).match(reg);

        if (r) {

        while(r[2].indexOf('%')>-1){

    r[2]= decodeURI(r[2]);

   }

            return r[2];

        }

        return null;

    }

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-10-31
  • 2021-10-23
  • 2021-12-06
  • 2022-02-07
猜你喜欢
  • 2022-12-23
  • 2021-05-21
  • 2021-12-27
  • 2022-12-23
  • 2021-07-12
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案