2013-03-20 2 views
1

У меня проблема:Как получить параметры URL без обновления страницы?

Я использую следующую функцию для получения параметров GET URL-адреса.

$(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

Определить функцию вне $ (документ) .ready, а затем вызвать вашу функцию. –

+0

нет дубликатов, потому что функция работает. Мне нужно решение для выполнения функции после правильной загрузки URL-адреса и содержит значения –

+0

Проблема решена: я просто поставил функцию выше в функцию setTimeout. Иногда это проще, как вы думаете –

ответ

0

Это стандартная программа для чтения параметров строки запроса: http://www.webreference.com/programming/javascript/jkm/2.html

Загрузить пары. JS, по ссылке в нижней части этой страницы, чтобы ваш сайт и включить его в элемент сценария:

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

Независимо от того, на какой стадии загрузки страницы в вы можете позвонить ФУНКЦИИ п пары() для чтения параметров, например:

var q = param(); 
var radius = q.radius; 
0

You ван сделать функцию, как это:

$.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'); 
Смежные вопросы