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

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联系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值