本文首发于 http://www.YoungZY.com/
需求
想实现这样一个功能:打开一个静态HTML页面A,让它自动跳转到页面B。
实现
怎么实现呢?
习惯了JSP之类的传参(Request、Session等),忽然想用静态的HTML页面,不知道怎么用了。
比较容易想到的就是通过URL传参,A.html?ref-url=B.html
。
怎样才能取到这个ref-url
的值呢?
字符串……split?
会不会太low?
应该有更简洁的办法吧。
网上搜了搜(见文末参考部分),有主意了。
还是通过URL,但不是用split,而是用正则表达式。
示例
A.html的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<html> <head> <title>Young Zhu</title> <script type="text/javascript"> function getURL() { // 注意这里的 search ,会返回URL里?后面的字符串,包括?本身 var queryStr = window.document.location.search; //alert(queryStr); var url = (queryStr.match(/(=)[^&]*/g))[0].substr(1); //alert(url); return url; } </script> </head> <body> <script type="text/javascript"> window.location.href=getURL(); </script> </body> </html> |
用浏览器打开 A.html,在地址栏现有的内容后面加上以下内容:?ref-url=B.html
。
注意:
- 本例中参数名不重要,因为正则表达式是要取=后面的内容。
- 为了方便,只写了B.html,测试时请换成真实路径,或者换成其他的网址,例如某Du。
知识点
- 获取URL后面的传参字符串
window.document.location.search
原来还专门有这样的一个属性 search,而不用自己去解析。
- 正则表达式
- 页面重定向
window.location.href=new-url;
近期评论