URL中 ?后面的是参数 那么#后面的是啥内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL中 ?后面的是参数 那么#后面的是啥内容?相关的知识,希望对你有一定的参考价值。
参考技术A #号后面的也是参数,取得的方法如下:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<script type="text/javascript">
/**
* 取得路径中的参数
* @param string name 参数名称
* @param string after 一个字符,可接受的字符是?和#,默认为?。此函数将从该字符后面的字符串中检索到参数name的值.
*/
function getURLParam(name, after)
if (!after)
after = "?";
if(after!="?"&&after!="#")
return "";
var url = document.location.toString();
var startIndex = url.indexOf(after);
if (startIndex == -1)
return "";
var paramsArr = url.slice(startIndex + 1).split("&");
var returnValue = "";
var paramName = "";
var paramValue = "";
var str = "";
var position = -1;
for (var i in paramsArr)
str = paramsArr[i];
position = str.indexOf("=");
if (position > -1)
paramName = str.slice(0, position);
if (paramName == name)
paramValue = str.slice(position + 1);
return paramValue;
return "";
</script>
<body>
</body>
</html>追问
那请问下 两者有什么差别的啊?~~ ^o^
追答?是默认的传参方式,#则是一个特殊标记,只是问好传参的话只要用request就可以取值了,而#号则要用如上代码才能得到
本回答被提问者采纳JS如何获取地址栏url后面的参数?
本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:JS如何获取地址栏url后面的参数?;
这里提供了两种获取地址栏url后面参数的方法:
方式1
传参:
window.location.href = "/html/bsp/user/userEdit.html?name=四个空格&age=2";
获取参数:
function getParams() {
var params = {};
if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) {
var paramArray = unescape(this.location.search).substring(1, this.location.search.length).split("&");
if (paramArray.length > 0) {
paramArray.forEach(function (currentValue) {
params[currentValue.split("=")[0]] = currentValue.split("=")[1];
});
}
}
return params;
}
var name = getParams().name;
方式2
传参:
var params = {};
params['name'] = '四个空格';
params['age'] = '2';
window.location.href = "/html/bsp/user/userEdit.html?" + new URLSearchParams(params);
获取参数:
function urlParams(){
var searchParams;
if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) {
searchParams = new URLSearchParams(this.location.search.substring(1, this.location.search.length));
}
return searchParams;
}
var name = urlParams().get('name');
参考文章:
!--more-->以上是关于URL中 ?后面的是参数 那么#后面的是啥内容?的主要内容,如果未能解决你的问题,请参考以下文章