手机端和平PC端页面切换以及数据传递

1.页面为自适应手机端和平PC端而重新加载跳转页面
附带代码:

var mobileAgent = new Array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "we  bmate", "bada", "nokia", "lg", "ucweb", "skyfire");
       var browser = navigator.userAgent.toLowerCase();
       var isMobile = false;
       for (var i = 0; i < mobileAgent.length; i++) {
           if (browser.indexOf(mobileAgent[i]) != -1) {
               isMobile = true;
               location.href = "xinwendongtaicontent.html?a=1&b="+encodeURIComponent(encodeURIComponent("你好"));
               break;
           }
}`

注释:页面跳转可携带数据,但是中文数据容易出现乱码的问题,一般通过先编码再解码的方式解决这个方法。
JS中:
编码函数
encodeURIComponent(str);
解码函数
decodeURIComponent(str);

后台对应函数
编码
HttpContext.Current.Server.UrlEncode(str);
解码
HttpContext.Current.Server.UrlDecode(str);

2、手机端通过判断屏幕大小来确定页面的跳转

if(screen.width > '1024')
                window.location = "news.html";

3、跳转后的页面接收数据

var request = (function (){
    var obj = {};
    var arr = window.location.search.slice(1).split("&");
    for (var i = 0, len = arr.length; i < len; i++) {
        var nv = arr[i].split("=");
        obj[unescape(nv[0]).toLowerCase()] = unescape(nv[1]);
    }
    return obj; 
})()

alert(decodeURIComponent(decodeURIComponent(request.b, "UTF-8"), "UTF-8"));

注:页面获取数据时必须先解码再使用不然会出现乱码

4、window.location对象
可获取页面相应的属性
属性 描述
hash 从井号 (#) 开始的 URL(锚)
host 主机名和当前 URL 的端口号
hostname 当前 URL 的主机名
href 完整的 URL
pathname 当前 URL 的路径部分
port 当前 URL 的端口号
protocol 当前 URL 的协议
search 从问号 (?) 开始的 URL(查询部分)

JS 脚本捕获页面 GET 方式请求的参数,其实直接使用 window.location.search 获得,然后通过 split 方法结合循环遍历自由组织数据格式。

window.location.search//获取数据
window.location.search.slice(1)//从已有的数组中返回选定的元素。
var arr=window.location.search.slice(1).split(“&”)//将数组以&分割
for (var i = 0, len = arr.length; i < len; i++) {
var nv = arr[i].split(“=”);
obj[unescape(nv[0]).toLowerCase()] = unescape(nv[1]);
}//最后循环再次分割并获取数据。
decodeURIComponent(decodeURIComponent(request.b, “UTF-8”), “UTF-8”)//将数据解码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值