这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
这篇文章主要介绍了 JS 实现页面跳转参数不丢失的方法, 结合实例形式对比分析了 javascript URL 加密函数 escape()、encodeURI() 与 encodeURIComponent() 的功能与相关使用技巧, 需要的朋友可以参考下
本文实例讲述了 JS 实现页面跳转参数不丢失的方法。分享给大家供大家参考,具体如下:
需求:页面编辑后,返回列表页面,参数不丢失,能够记住页数以及筛选条件。
我坚信,不管白猫黑猫,能捉到耗子的就是好猫,当然如果能够高效的,简单的处理最好。
我的思路就是,把列表页面地址作为参数传递过去。
这里就会面临一个问题,url 本身就是由多个参数组成的,这样纯粹的传递,就会出问题,参数丢失。
所以要对 url 进行加密。
escape()、encodeURI()、encodeURIComponent()
JavaScript 中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应 3 个解码函数:unescape,decodeURI,decodeURIComponent 。
escape() 除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对 URL 编码,最好不要使用此方法。而 encodeURI() 用于编码整个 URI, 因为 URI 中的合法字符都不会被编码转换。encodeURIComponent 方法在编码单个 URIComponent(指请求参数)应当是最常用的,它可以将参数中的中文、特殊字符进行转义,而不会影响整个 URL。
经过测试,发现 encodeURIComponent 方法可以很好的解决这个问题。
1. 设置 url
- // 设置当前url
- var list_url = '/document/order/default.php?page=' + page_nums + '&'+ $("#form1").serialize();
- var e_list_url = encodeURIComponent(list_url);
- $("#list_url").val(e_list_url);
2. 传递 url
- var list_url = $('#list_url').val();
- window.location.href='/document/order/view.php?order_id='+order_id+'&action=edit&handler=admin&list_url='+list_url;
3. 解析 url 并跳转
- var list_url = '<?php echo $list_url;?>';
- d_list_url = decodeURIComponent(list_url);
- window.location.href = d_list_url;
这样就能实现,参数不丢失了。主要就是页码和筛选条件。
希望本文所述对大家 JavaScript 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0528/330130.html