如何在不刷新页面的情况下获取URL参数?

时间:2013-03-20 15:35:10

标签: javascript jquery html 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 ("");
        }
});

例如,我有网址http://example.com/?radius=5&lat=31.312,我希望获得“radius”

的值
var radius = getParam("radius");

问题:在URL中我可以看到radius的值为“5”,但是当我在刷新浏览器页面后运行console.log("radius " + radius);时,值正确显示。

为什么第一次加载页面时没有正确检索到值?有人有想法解决这个问题吗?

我通过另一个html提交的表单获取参数,我想在当前的html上使用它们

2 个答案:

答案 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');