1、获取url:
window.location.href;
2、获取url中的文件名:
function getHtmlDocName() {
var str = window.location.href;
str = str.substring(str.lastIndexOf("/") + 1);
str = str.substring(0, str.lastIndexOf("."));
return str;
}
3、获取url中的指定参数的值:jquery从html路径中获取参数、拼接参数
例:
路径:http://localhost:8080/orderDinner/meal.html?flag=0&type=cai
jquery代码:
var flag = GetQueryString("flag");
var type= GetQueryString("type");
function GetQueryString(name) {
//构造一个含有目标参数的正则表达式对象
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
//匹配目标参数
var r = window.location.search.substr(1).match(reg);
//返回参数值
if (r != null) return unescape(r[2]);
//不存在时返回null
return null;
}
这样,可以获取到flag和type两个参数的值。
另:给html拼接参数:
html代码:
<a href="meal.html" id="cai">菜</a>
jquery代码:
$("#cai").attr("href","meal.html?flag="+flag+"&type="+type);
集卡活动中的任务,有的是点击跳转到某一链接即可完成任务,或者是在跳转链接停留多长时间即可完成任务,类似这样的,在任务列表点击某一任务跳转链接的情形,用到上述的内容,即拼装相应的参数。原本的链接比如http://www.hello.cm/detail/123.html
从任务链接点过去拼装成http://www.hello.cm/detail/123.html?task_id=1&source=baidu&task_type=1&time=5
这样的链接过去,页面获取相应的参数和值,如果获取到了,则开启计时器或者等待用户下一步操作继续拼接以上参数,从而在完成任务的时候,调取完成任务接口,统计奖励,服务端做相应的数据处理并做幂等校验。
4、ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。
综上: javascript对参数编码解码方法要一致:
escape() → unescape()
encodeURI() → decodeURI()
encodeURIComponent() → decodeURIComponent()
5.window.location 对象所包含的属性
| 属性 | 描述 |
| hash | 从井号 (#) 开始的 URL(锚) |
| host | 主机名和当前 URL 的端口号 |
| hostname | 当前 URL 的主机名 |
| href | 完整的 URL |
| pathname | 当前 URL 的路径部分 |
| port | 当前 URL 的端口号 |
| protocol | 当前 URL 的协议 |
| search | 从问号 (?) 开始的 URL(查询部分) |
如图就是取出url中的参数。window.location.search
JS 脚本捕获页面 GET 方式请求的参数?其实直接使用 window.location.search 获得,然后通过 split 方法结合循环遍历自由组织数据格式。
大概处理如下:
var searchURL = window.location.search; //获得连带?后面的参数,不包括#后面的
searchURL = searchURL.substring(1, searchURL.length); //去除问号
var targetPageId = searchURL.split("&")[0].split("=")[1]; //获取第一个参数的值
网友评论