1.使用jquery获取当前url:
window.location.href;
(给window.location.href=”XXX” 赋值,即在当前位置打开新页面)
2.jquery获取url参数要用正则表达式,首先看一下单纯的通过js来获取url中的某个参数:
1 | function getUrlParam(name){ |
小知识:
unescape(string)方法是用来解码的,与escape(string)相对应
unescape()的工作原理是:通过找到形式为%xx和%uxxx的字序列(表示十六进制的数字),用Unicode字符\u00xx和\uxxx替换这样的字符序列进行编码。
unescape()和escape()函数已被废除,用decodeURI()和decodeURIComponent()(对编码后的url进行解码,encodeURIComponent是编码)取代
通过这个函数传递url中的参数名就可以获取到参数的值,比如url为:
http://localhost:33064/WebForm2.aspx?reurl=WebForm1.aspx
我们要获取reurl的值,可以这样写:
1 | var xxx = getParam('reurl'); |
明白了js获取url的方法我们可以通过这个方法为jquery扩展一个方法来通过jquery获取url参数,下面的代码为jquery扩展了一个getUrlParam()方法
1 | (function($){ |
为jquery拓扩展了方法后我们就可以通过这种方法来获取某个参数的值了:
1 | var xx= $.getUrlParam('reurl'); |
完整代码:
1 | <script src="js/jquery-1.7.2.min.js" type="text/javascript"></script> |
用上面的方法获取url中的参数时,url中传递的中文参数在解析的时候无论怎么测试,获取的都是乱码。经过一番调试后发现,我再传递参数时,对汉字编码使用的是 encodeURI ,而上面的方法在解析参数编码时使用的是unescape ,修改为 decodeURI 就可以了。