1. 程式人生 > >js中的頁面傳值和中文顯示亂碼問題(innerHTML在頁面上顯示亂碼)(focusdroid)

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>

有什麼問題[email protected]聯絡