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があり、「radius」の値が必要です。

var radius = getParam("radius");

問題:URLで、radiusの値が「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 に答える