2013-03-20 117 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'); 
相關問題