js中的頁面傳值和中文顯示亂碼問題(innerHTML在頁面上顯示亂碼)(focusdroid)
阿新 • • 發佈:2018-12-30
js中的頁面傳值和中文顯示亂碼問題(innerHTML在頁面上顯示亂碼)
0.需求
- a頁面的值傳到B頁面上(數字,字母或者中文),需要顯示在頁面上,頁面上顯示的是亂碼(或者在控制檯打印出來是中文,放在頁面上就是亂碼)
本身就需要傳遞中文的值,單傳過去就是亂碼
有一些自己的特殊需求
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]聯絡