我有以下问题:
我正在使用以下函数来检索URL的GET参数。
$(document).ready(function() {
function getParam(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for ( var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
return ("");
}
});
例如,我有网址http://example.com/?radius=5&lat=31.312,我希望获得“radius”
的值var radius = getParam("radius");
问题:在URL中我可以看到radius的值为“5”,但是当我在刷新浏览器页面后运行console.log("radius " + radius);
时,值正确显示。
为什么第一次加载页面时没有正确检索到值?有人有想法解决这个问题吗?
我通过另一个html提交的表单获取参数,我想在当前的html上使用它们
答案 0 :(得分:0)
这是用于读取查询字符串参数的标准程序: http://www.webreference.com/programming/javascript/jkm/2.html
将param.js从该页面底部的链接上传到您的网站,并将其包含在脚本元素中:
<script src="[...]param.js"></script>
无论页面处于何种加载阶段,您都可以调用函数param()来读取参数,例如:
var q = param();
var radius = q.radius;
答案 1 :(得分:0)
$.extend({
getUrlVars: function(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
},
getUrlVar: function(name){
return $.getUrlVars()[name];
}
});
// Get object of URL parameters
var allVars = $.getUrlVars();
// Getting URL var by its nam
var byName = $.getUrlVar('name');