2012-08-12 33 views

Odpowiedz

35
function getHashValue(key) { 
    var matches = location.hash.match(new RegExp(key+'=([^&]*)')); 
    return matches ? matches[1] : null; 
} 

// usage 
var hash = getHashValue('hash'); 
+1

Ta gra ults wszystko po 'hash =' –

+0

@AkshatMittal Edytowane. – xdazz

+0

To działa teraz! –

3

Jak o

location.hash.split('hash=')[1].split('&')[0] 

ten zostanie podzielony na hash= hash i przyjmują wartość hash = po i przed każdym innym argumentem.

+0

To jak jest nie działa, co czyni go 'lokalizacja .href.split ('hash =') [1] .split ('&') [0] 'działa –

+0

Potrzebujesz przetestować więcej, Aktualizowanie teraz –

1

Podział na & a następnie na =:

pairs = location.hash.substr(1).split('&').map(function(pair) { 
    var kv = pair.split('=', 2); 
    return [decodeURIComponent(kv[0]), kv.length === 2 ? decodeURIComponent(kv[1]) : null]; 
}) 

Tutaj pairs będzie tablicą tablic z kluczem na 0 a wartość w 1:

[["hfh","fdg"],["hash","value2x"]] 
2

Jeśli wykonują rozległe manipulacje z adresami URL, a następnie przejrzyj listę JQuery URL plugin.

Aby uzyskać dostęp do params w URL skróty

$.url('http://www.google.com/#hfh=fdg&hash=value2x').fparam('hash'); 

lub jeśli jego aktualny adres URL

$.url().fparam('hash'); 

Nadzieja pomaga

+0

To pomaga, mam to również przed , Przepraszam, że nie określiłem wcześniej, ale nie chcę używać jQuery. –

2
location.parseHash = function(){ 
    var hash = (this.hash ||'').replace(/^#/,'').split('&'), 
     parsed = {}; 

    for(var i =0,el;i<hash.length; i++){ 
     el=hash[i].split('=') 
     parsed[el[0]] = el[1]; 
    } 
    return parsed; 
}; 

var obj= location.parseHash(); 
    obj.hash; //fdg 
    obj.hfh; //value2x 
Powiązane problemy