2011-12-20 12 views
5

Czy istnieje (natywny) interfejs API javascript, który oferuje "funkcjonalność" window.location do niestandardowych adresów URL? coś w rodzajuNarzędzie do zarządzania adresami URL?

Jestem prawie pewien, że nie ma natywnego API dla tego (z jakiego powodu). Jeśli ktoś to zaimplementował, udostępnij ten link.

+0

możliwe duplikat [Jak analizować URL do nazwy hosta i ścieżki w javascript?] (Http://stackoverflow.com/questions/736513/how-do-i- parse-a-url-into-hostname-and-path-in-javascript) – Cameron

+0

@Cameron Pytania mogą być podobne, ale biblioteka, z którą się łączyłem, nie istnieje na przykład (a może i inne rozwiązania). – deviousdodo

+0

@draevor: Tak, najlepiej będzie zachować oba elementy (lub może je scalić, być może). – Cameron

Odpowiedz

3

Odpowiedź brzmi: tak i nie.

Jak sugeruje pewna odpowiedź, można utworzyć element zakotwiczenia i użyć go do wykonania analizy składniowej, która jest w zasadzie natywnym kodem.

var url = document.createElement("A"); 
url.href = "http://stackoverflow.com/question?hello=world#foo"; 

console.log('// expected: "stackoverflow.com", "/question"'); 
console.log('//  got: "' + url.hostname + '", "' + url.pathname + '"'); 
output -->   got: "stackoverflow.com", "/question" 

url.hash = "bar"; 
url.search = ""; 

console.log('// expected: "http://stackoverflow.com/question#bar"'); 
console.log('//  got: "' + url.href + '"'); 
output -->   got: "http://stackoverflow.com/question?#bar" 

żywo demo: http://jsfiddle.net/roberkules/H48dt/

Jedyną różnicą jest to, że ten ? nie jest usuwany po opróżnieniu kwerendy.

z "API":

url.protocol 
url.host 
url.port 
url.pathname 
url.search 
url.hash 
+0

nie wiedziałem, że to możliwe, dzięki. (Ale niewiele to pomaga) – rodneyrehm

2

Ponieważ nie było użyteczne API do pracy z adresami URL, I zbudował sobie: URI.js.

Pozwala odczytać komponenty/zapisu z adresu URL za pomocą jQuery jak API i ma kilka przydatnych funkcji do pracy z ciągów zapytań, normalizowanie URL i tworzenie ścieżki względne/bezwzględne.

Merry Christmas, cieszyć :)

Powiązane problemy