2012-07-30 11 views
5

Ich habe eine URL wie http://www.example.com/folder/file.html#val=90&type="test"&set="none"&value="reset?setvalue=1&setvalue=45"Wie erhalten Sie den Hashtag-Wert und den kaufmännischen Und-Wert einer URL in Javascript?

Jetzt muss ich aus den Teil der URL bekommen von # beginnen, Wie bekomme ich, dass ich mit window.location.search.substr(); versucht, aber sieht aus wie das für sucht? in einer URL. gibt es eine Methode, den Wert von url nach #

Wie kann ich auch einen Teil der URL von Ampersand &

Dank erhalten zu bekommen, Michael

+0

Irgendwelche Glück @Mike? –

+0

@MatthewBlancarte gibt es keine Abkürzung Weg, um alles nach kaufmännisches und wie haben wir für Hash-Tag, wenn nicht dann, was ist der Ansatz – Mike

+0

Haben Sie versucht, die akzeptierte Vorgehensweise in der Verbindung, die ich am Ende meiner Antwort gab? http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript Das analysiert die Abfragezeichenfolge. Wenn Sie diese Server-Seite (z. B. PHP/Rails/etc.) Tun würden, wäre es viel einfacher. –

Antwort

13
var hash = window.location.hash; 

Mehr Infos hier: https://developer.mozilla.org/en/DOM/window.location

Update: Dies wird alle Zeichen nach dem Hashtag, einschließlich aller Abfragezeichenfolgen greifen. Von der MOZ Handbuch:

window.location.hash === the part of the URL that follows the # symbol, including the # symbol. 
You can listen for the hashchange event to get notified of changes to the hash in 
supporting browsers. 

Nun, wenn Sie die Abfrage-String parsen müssen, was ich glaube, Sie tun, überprüfen Sie dies hier aus: How can I get query string values in JavaScript?

+0

Ist ein Weg, um einen Wert nach & – Mike

+0

zu bekommen Das ist eine separate Frage - bitte posten Sie es als solche, oder bearbeiten Sie die aktuelle Frage. Der Teil nach '?' (Nicht '&' ist die Abfragezeichenfolge - Sie haben nach dem Hash gefragt). – Utkanos

+0

@Utkanos Ich bearbeitet jetzt bitte antworten, wenn Sie wissen, – Mike

0

Dies wird die # und & Werte erhalten:

var page_url = window.location + "";  // Get window location and convert to string by adding "" 
var hash_value = page_url.match("#(.*)"); // Regular expression to match anything in the URL that follows # 
var amps;         // Create variable amps to hold ampersand array 

if(hash_value)        // Check whether the search succeeded in finding something after the # 
{ 
    amps = (hash_value[1]).split("&");  // Split string into array using "&" as delimiter 
    alert(amps);       // Alert array which will contain value after # at index 0, and values after each & as subsequent indices 
} 
+0

kann nicht lesen Eigenschaft '1' von Null ist der Fehler, den ich bekomme, wenn ich dies in der Konsole – Mike

+1

ausführen Dies wird Fehler jedes Mal gibt es keinen Hash, da eine Übereinstimmung angenommen wird, nicht überprüft. – Utkanos

+0

können Sie bitte erklären Sie Ihre zweite Zeile des Codes – Mike

5

den Hash zu packen:

location.hash.substr(1); //substr removes the leading # 

bis g rab die Query-String

location.search.substr(1); //substr removes the leading ? 

[EDIT - da Sie scheinen eine Art Abfrage-String-esq Zeichenfolge zu haben, die tatsächlich Teil Ihrer Hash ist, wird die folgende abrufen und analysieren sie in ein Objekt der Name/Wert-Paarungen .

var params_tmp = location.hash.substr(1).split('&'), 
    params = {}; 
params_tmp.forEach(function(val) { 
    var splitter = val.split('='); 
    params[splitter[0]] = splitter[1]; 
}); 
console.log(params.set); //"none" 
+0

location.search.sub (1); scheint nicht für mich zu arbeiten. – Mike

+0

Dies liegt daran, dass Sie Abfragezeichenfolgen mit Hashes verwechseln. Sie scheinen eine Art von String query-esq als Teil Ihres Hashes zu haben. Wenn Sie * das * extrahieren wollen, brauchen Sie eine REGEX, String-Behandlung. Ich werde die Antwort bearbeiten. – Utkanos

Verwandte Themen