2013-03-20 52 views
1

我有以下问题:如何在不刷新页面的情况下获取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

+0

定义的$(document)以外的功能。就绪,然后调用你的函数。 – 2013-03-20 15:52:08

+0

没有重复,因为该功能正在工作。在URL加载正确并且包含值后,我需要一个用于执行该函数的解决方案。 – 2013-03-20 15:53:05

+0

问题已解决:我只是将上面的函数放入setTimeout函数中。有时候你会觉得比较容易 – 2013-03-20 17:11:29

回答

0

这是读取查询字符串参数的标准程序: http://www.webreference.com/programming/javascript/jkm/2.html

上传PARAM。 JS,从该页面底部的链接,你的网站,它包括在脚本元素:

<script src="[...]param.js"></script> 

无论哪个阶段加载页面的是,你可以调用函数的ñ参数()读取参数,例如:

var q = param(); 
var radius = q.radius; 
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'); 
相关问题