Javascript 如何使用js读取所有url参数?

Javascript 如何使用js读取所有url参数?,javascript,Javascript,有没有办法,如何读取url参数 www.example.com/detail?id=12 www.example.com/detail/12 返回12 我不知道参数是什么。我想全部返回。您可以使用window.location.href获取包含参数的URL 访问第二个示例中的id参数(www.example.com/detail/12) 如果您不需要它在Internet Explorer中工作,还可以实现它,它允许您定义URL对象并直接从中检索参数: 来自 您可以使用Web API和访问win

有没有办法,如何读取url参数

www.example.com/detail?id=12
www.example.com/detail/12
返回12


我不知道参数是什么。我想全部返回。

您可以使用
window.location.href
获取包含参数的URL

访问第二个示例中的id参数(www.example.com/detail/12)

如果您不需要它在Internet Explorer中工作,还可以实现它,它允许您定义URL对象并直接从中检索参数:

来自
您可以使用Web API和访问window.location

var url\u字符串=”http://www.example.com/detail?id=12";//www.example.com/detail/12”;
var url=新的url(url\u字符串);
var id=url.searchParams.get(“id”);

警报(id);
1.使用
location.href
获取所有url

2.查找
字符并拆分域和参数

3.对于每个拆分
=
字符,您将获得所有参数值

var url=location.href;
if(url.indexOf(“?”)!=-1)
{
var ary=url.split('?')[1]。split('&');

对于(i=0;i您可以抓取GET parameters字符串并像这样解析它,首先将其转换为数组,然后从该数组构造一个对象,该对象将允许您访问项目:

const GETstring = window.location.search.subst(1);

let GETarray = GETstring.split("=");
let GETobject = {};

for(i=0;i<GETarray.length;i++){
    if(i%2 === 0)}{
        GETobject[GETarray[i]] = GETobject[i+1];
    }
}

console.log(GETobject.id) // should print 12;
const GETstring=window.location.search.subst(1);
让GETarray=GETstring.split(“”);
让GETobject={};

对于(i=0;i有几种方法可以实现这一点。如果您使用的是框架或任何库,它们可能会提供一种更优雅的实现方法,但需要手动:

  • 正则表达式如果大家都熟悉的话,我可能会推荐这种方法。这种方法可能更神秘,但性能更高
  • 将字符串视为数组。在?索引之后,获取由“/”和&
  • log=(…x)=>console.log(…x);
    const url_2=“www.example.com/detail/12”;
    const url_1=“www.example.com/detail?id=12&thing=blue&sky=red”;
    const splits2=url_2.split(“/”);
    日志(拆分2);//[“www.example.com”,“detail”,“12”]
    log(splits2[splits2.length-1]);//12
    const splitbyquestionmark=url_1.split(“?”);
    日志(“splitbyquestionmark”,splitbyquestionmark);//[“www.example.com/detail”,“id=12&thing=blue&sky=red”]
    const parameters=splitbyquestionmark.splice(splitbyquestionmark.length-1,1);//[“id=12&thing=blue&sky=red”]
    const paramsAsString=parameters[0];//id=12&thing=blue&sky=red
    const finalParams=paramsAsString.split(“&”);
    
    当前URL的日志(finalParams)//[“id=12”,“thing=blue”,“sky=red”]
    ,或从字符串?从字符串..var URL=new URL(yourUrlString);url.searchParams包含许多方法,您可以使用这些方法获取所有参数或特定参数。如果希望在较低版本的IET中支持,您可以使用polyfills。这在任何版本的Internet Explorer中都不起作用。如何获取运行代码段并将代码段复制到应答按钮?@Urasquirrel您可以按
    ctrl
    +
    M
    在答案区域,您将看到代码段:)。运行代码和复制代码段由系统自动创建。谢谢,伙计!谢谢!
    var paramsString = "q=URLUtils.searchParams&topic=api";
    var searchParams = new URLSearchParams(paramsString);
    
    //Iterate the search parameters.
    for (let p of searchParams) {
      console.log(p);
    }
    
    searchParams.has("topic") === true; // true
    searchParams.get("topic") === "api"; // true
    searchParams.getAll("topic"); // ["api"]
    searchParams.get("foo") === null; // true
    searchParams.append("topic", "webdev");
    searchParams.toString(); // "q=URLUtils.searchParams&topic=api&topic=webdev"
    searchParams.set("topic", "More webdev");
    searchParams.toString(); // "q=URLUtils.searchParams&topic=More+webdev"
    searchParams.delete("topic");
    searchParams.toString(); // "q=URLUtils.searchParams"
    
    const GETstring = window.location.search.subst(1);
    
    let GETarray = GETstring.split("=");
    let GETobject = {};
    
    for(i=0;i<GETarray.length;i++){
        if(i%2 === 0)}{
            GETobject[GETarray[i]] = GETobject[i+1];
        }
    }
    
    console.log(GETobject.id) // should print 12;