协慌网

登录 贡献 社区

如何使用 jQuery 或纯 JavaScript 获取 URL 参数?

我已经看到很多 jQuery 示例,其中参数大小和名称是未知的。

我的网址只会包含 1 个字符串:

http://example.com?sent=yes

我只想检测:

  1. sent是否存在?
  2. 它等于 “是” 吗?

答案

最好的解决方案在这里

var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = window.location.search.substring(1),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;

    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return typeof sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
        }
    }
    return false;
};

这就是假设网址为的情况下如何使用此功能的方法,
http://dummy.com/?technology=jquery&blog=jquerybyexample

var tech = getUrlParameter('technology');
var blog = getUrlParameter('blog');

2020 年的解决方案

我们有: http://example.com?sent=yes

let searchParams = new URLSearchParams(window.location.search)

发送是否存在

searchParams.has('sent') // true

等于“是” 吗?

let param = searchParams.get('sent')

然后比较一下。

jQuery 代码片段获取作为参数存储在 url 中的动态变量,并将它们存储为可与脚本一起使用的 JavaScript 变量:

$.urlParam = function(name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (results==null) {
       return null;
    }
    return decodeURI(results[1]) || 0;
}

example.com?param1=name¶m2=&id=6

$.urlParam('param1'); // name
$.urlParam('id');        // 6
$.urlParam('param2');   // null

带空格的示例参数

http://www.jquery4u.com?city=Gold Coast
console.log($.urlParam('city'));  
//output: Gold%20Coast



console.log(decodeURIComponent($.urlParam('city'))); 
//output: Gold Coast