1、问题:
最近遇到一个问题,在A页面跳转到B页面时,同时将一个值带到B页面并显示出来。
最后找到一个比较靠谱的方法,分享给大家~
2、解决:
页面其他内容不再展示,只写A,B两个页面的JS代码段,有基础的同学应该是能看懂的。
注:中文传输:可以在页面a用encodeURI 编码url 在b页面用decodeURI解码url
A页面JS代码
<script language="JavaScript">
function test(){
var temp = document.getElementById("txt");
location.href="test2.html?"+"txt="+encodeURI(temp.value);
}
</script>
B页面JS代码
<script type="text/javascript">
// 地址的总长度
var n1 = location.href.length;
// 取得=号的位置
var n2 = location.href.indexOf("=");
// 截取=号后面的内容
var id = decodeURI(location.href.substr(n2+1, n1-n2));
// 控制台打印输出
console.log("获取的邮箱地址:" + id);
// 将获取的值设置到指定位置
$("#temp").html(id);
</script>
3、总结:
这种方法对传递几个值的情况适用,如果传递的值比较多的话,这种方法有一定得局限性。
4、补充:
4.1、问题:
近期用该方法时,遇到了一点问题,截取传过来的值时,在Chrome,IE,Firefox中都没有问题,
但是在微信内置浏览器和Safari浏览器中执行异常
4.2、原因:
经排查发现,微信内置浏览器会在地址后自动加上浏览器标识,截取的不是原来想要的值
4.3、解决:
加上下面的代码,判断一下,只截取自己想要的值即可
uid = decodeURI(location.href.substr(n2 + 1, n1 - n2));
if(uid.length > 8){
uid = uid.substring(0, 8);
}