使用location.search定位参数的值

时间:2014-11-07 14:08:42

标签: javascript location

我正在开发一个工具,它接受URL中的值参数并对它们做一些事情。

我的问题是,我似乎无法使用document.location来显示我所追求的具体值,例如:

www.examplesite.com?yourname=gilgilad

我想使用document.location.search并将其放在var中,我需要将var的值设为“gilgilad”。

甚至可以使用location.search吗?

4 个答案:

答案 0 :(得分:10)

location.search将在包含它的问号后返回。所以有通用的js来获取第一个参数的值(即使url有更多的参数):

var desire = location.search.slice(1).split("&")[0].split("=")[1]

示例:让我们记下网址http://example.com?name=jon&country=us

  1. location.search将等于?name=jon&country=us
  2. '。slice(1)'跳过'?',返回字符串的其余部分。 3 .split("&")[0]将其分为两个字符串(?name=joncountry=us),并将其分为第一个
  3. .split("=")[1]name=jon分为namejon,然后选择第二个。完成!

答案 1 :(得分:1)

一种更通用的解决方案,用于拆分location.search查询参数并将其转换为对象:

var a = location.search.split("&");
var o = a.reduce(function(o, v) {
    var kv = v.split("=");
    kv[0] = kv[0].replace("?", "");
    o[kv[0]] = kv[1];
    return o;
    },
{});

答案 2 :(得分:0)

let url = new URL('www.examplesite.com?yourname=gilgilad');
let searchParams = new URLSearchParams(url.search);
console.log(searchParams.get('yourname'));

您还可以考虑直接为用户window.locationwindow.location.search

let searchParams = new URLSearchParams(window.location.search);
console.log(searchParams.get('yourname'));

答案 3 :(得分:-1)

使用document.location.search:

制作?yourname=gilgilad
window.location.search = 'yourname=gilgilad';

这里是jsfiddle:http://jsfiddle.net/t81k3bgc/

确保使用控制台,然后使用[run]。你会看见: enter image description here

了解更多信息: https://developer.mozilla.org/en-US/docs/Web/API/Window.location#Example_.235.3A_Send_a_string_of_data_to_the_server_by_modifying_the_search_property.3A