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');

参考文章:

  1. URLSearchParams
  2. Is there any native function to convert json to url parameters?

以上是关于URL中 ?后面的是参数 那么#后面的是啥内容?的主要内容,如果未能解决你的问题,请参考以下文章

开机动画配置文件desc.text帧数后面0是啥

获取url ?号后面的参数的几种方式

setup后面的东西是啥意思?

C#截取URL问题

python,%1.1f%%',这个格式是啥意思,我看懂的是字段宽1,精度1,后面的%%是啥意思没看懂。

java中pattern是啥意思?