我已经看到很多 jQuery 示例,其中参数大小和名称是未知的。
我的网址只会包含 1 个字符串:
http://example.com?sent=yes
我只想检测:
sent
是否存在?最好的解决方案在这里。
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