js中的页面传值和中文显示乱码问题(innerHTML在页面上显示乱码)(focusdroid)

来源:互联网 发布:阿里云 百度云 知乎 编辑:程序博客网 时间:2024/06/06 00:57

js中的页面传值和中文显示乱码问题(innerHTML在页面上显示乱码)

0.需求

  1. a页面的值传到B页面上(数字,字母或者中文),需要显示在页面上,页面上显示的是乱码(或者在控制台打印出来是中文,放在页面上就是乱码)
  2. 本身就需要传递中文的值,单传过去就是乱码

  3. 有一些自己的特殊需求

1 .不多说,代码一看就会了,不会自己琢磨琢磨

这是 a.html

<!DOCTYPE html><html><head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <title>这是a.html</title>    <link rel="stylesheet" href=""></head><body>    <h3><button type="button" id="btn">点击跳转b.html</button></h3></body></html><script>    var btn = document.querySelector('#btn');    btn.onclick = ()=>{        var number = '中国';        var number2 = 654321;        url = "b.html?number="+number+"&"+"number2="+number2        //两次转url都不能少,否则中文不能正常显示        url = encodeURI(url);        url = encodeURI(url);        window.location.href=url    }</script>

这是b页面(从a跳转过来的)

<!DOCTYPE html><html><head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <title>b.html</title>    <link rel="stylesheet" href=""></head><body>    <h1>这是第二个页面</h1>    <p id="num"></p>    <p id="num2"></p></body></html><script>    getParams = (key)=>{        var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");        var r = window.location.search.substr(1).match(reg);            if (r != null) {              return unescape(r[2]);          }          return null;      };      //简化一下      /*var num = document.querySelector('#num');      var num2 = document.querySelector('#num2')*/      Select = (ele)=>{        var ele = document.querySelector('ele');      }      Select(num);      Select(num2);      //转码操作,那个是中文需要转就把放在下面这里      number = decodeURI(getParams('number'));      //在控制台看一下      console.log(number);//number的中文参数      console.log(getParams("number2"));//number2的数字参数      //显示在页面上,开发时注意innerHTML和innerText的兼容性      num.innerHTML = decodeURI(getParams('number'));      num2.innerHTML = getParams('number2');</script>

有什么问题weexss@163.com联系

原创粉丝点击