您的位置:首页 > Web前端 > JavaScript

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

2017-10-11 12:40 423 查看

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>


有什么问题weexss@163.com联系
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息