1

我有以下问题:

我正在使用以下函数来检索 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 上使用它们

4

2 回答 2

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;
于 2013-03-20T16:02:33.537 回答
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');
于 2013-03-20T16:03:46.603 回答