2010-07-22 66 views

回答

0
var matches = location.href.match(/(key=)([a-z0-9]+)$/i); 

可變matches將是一個陣列和火柴[2]將包含密鑰的值。

2

這個JavaScript庫可以在standard format解析查詢字符串即:

http://www.my-site.com/?key=kj123asj 

代碼即可獲得key將是:

var qs = new Querystring(); 
var key = qs.get("key"); 
0

您可以從變量window.location.href訪問整個URL。之後,只需要搜索字符串#=字符並在其後提取數據。例如:

var s = window.location.href; 
var i = s.indexOf('='); 
var value = s.substr(i+1); 

當然,只有讓你的第一個值,而如果你只有要提取一個值纔有效。 但是,你可以有一個值的JSON編碼的對象,像這樣:

http://www.somewebsite.com/#data={key: 1293, foo: "bar"} 

然後執行:

​​

您現在可以使用普通的JavaScript技術來訪問項目:

var key = map['key'] // 1293 
var foo = map['foo'] // "bar" 

這應該讓你開始,至少。

1
$.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'); 
3

似乎每個人都指着你的代碼引用查詢字符串。

假設您的參數位於片段而不是查詢字符串中,如您提供的示例所示,您可以使用window.location.hash屬性訪問它們而無需自己解析整個URL。

從那裏你可以使用類似於其他人提到的代碼。這樣一個簡單的循環就可以工作。

var values = {}, 
    pairs = window.location.hash.substring(1).split('&'), 
    pair; 
for (var i = 0, len = pairs.length; i < len; i++) { 
    pair = pairs[i].split('='); 
    values[pair[0]] = pair[1]; 
} 
alert(values['key']); 
相關問題