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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/focusdroid/article/details/78202396

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>

有什么问题[email protected]联系

猜你喜欢

转载自blog.csdn.net/focusdroid/article/details/78202396