JavaScript 获取url,html文件名,参数值

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(查询部分) |

3113815-578a657fec034e0f
image
3113815-a97c0dc31ef5754a
image

如图就是取出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];  //获取第一个参数的值

猜你喜欢

转载自blog.csdn.net/weixin_34413065/article/details/86821778