如何在不刷新页面的情况下获取URL的参数?
问题描述:
我有以下问题:如何在不刷新页面的情况下获取URL的参数?
我正在使用以下函数来检索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 ("");
}
});
比如我有URL http://example.com/?radius=5&lat=31.312,我想有“半径”
var radius = getParam("radius");
问题的价值:在URL中,我可以看到半径的值为“5”,但是当我只刷新浏览器页面后正确显示值console.log("radius " + radius);
。
为什么第一次加载页面时不正确地检索到值?有人有解决这个问题的想法吗?
我从另一个HTML提交的表单得到的参数,我想使用它们对当前的HTML
答
这是读取查询字符串参数的标准程序: http://www.webreference.com/programming/javascript/jkm/2.html
上传PARAM。 JS,从该页面底部的链接,你的网站,它包括在脚本元素:
<script src="[...]param.js"></script>
无论哪个阶段加载页面的是,你可以调用函数的ñ参数()读取参数,例如:
var q = param();
var radius = q.radius;
答
你面包车进行函数是这样的:
$.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');
定义的$(document)以外的功能。就绪,然后调用你的函数。 – 2013-03-20 15:52:08
没有重复,因为该功能正在工作。在URL加载正确并且包含值后,我需要一个用于执行该函数的解决方案。 – 2013-03-20 15:53:05
问题已解决:我只是将上面的函数放入setTimeout函数中。有时候你会觉得比较容易 – 2013-03-20 17:11:29