Ce face new URL()
new URL(adresa) citește adresa și oferă părțile ca proprietăți: protocol, hostname, port, pathname, search, hash, origin. Proprietatea searchParams este un URLSearchParams legat de adresă. Modificarea oricărei proprietăți actualizează href.
Cu al doilea parametru rezolvi adrese relative: new URL("../poza.jpg", "https://site.ro/blog/articol/"). O adresă invalidă aruncă TypeError; URL.canParse verifică fără excepție, iar URL.parse returnează null în loc să arunce. toString() și toJSON() returnează adresa completă.
Parametri
| Parametru | Descriere |
|---|---|
adresa |
Adresa, absolută sau relativă. |
baza |
Opțional. Adresa de bază pentru adresele relative. |
Ce returnează
Un obiect URL.
Exemple
Exemplul 1: Părțile unei adrese
const url = new URL("https://www.dexblog.ro:8080/invata/javascript/?pagina=2&sort=nou#exemple");
console.log(url.protocol, url.hostname, url.port);
console.log(url.pathname, url.search, url.hash);
console.log(url.origin);
console.log(url.searchParams.get("pagina"));
Rezultat
https: www.dexblog.ro 8080
/invata/javascript/ ?pagina=2&sort=nou #exemple
https://www.dexblog.ro:8080
2
Exemplul 2: Modificare, adrese relative și validare
const url = new URL("https://www.exemplu.ro/produse");
url.searchParams.set("categorie", "cărți & reviste");
url.hash = "lista";
console.log(url.toString());
console.log(JSON.stringify({ link: url }));
console.log(new URL("../poze/cap.jpg", "https://site.ro/blog/articol/").href);
console.log(URL.canParse("nu e adresă"), URL.canParse("/relativ", "https://site.ro"));
console.log(URL.parse("nu e adresă"), URL.parse("mailto:ana@exemplu.ro")?.protocol);
Rezultat
https://www.exemplu.ro/produse?categorie=c%C4%83r%C8%9Bi+%26+reviste#lista
{"link":"https://www.exemplu.ro/produse?categorie=c%C4%83r%C8%9Bi+%26+reviste#lista"}
https://site.ro/blog/poze/cap.jpg
false true
null mailto:
Greșeli frecvente
- Construiești adrese lipind texte și parametrii cu diacritice sau
&nu sunt codificați. FoloseșteURLșisearchParams. - Creezi
new URL("/pagina")fără bază și primeștiTypeError: Invalid URL. Adresele relative au nevoie de al doilea parametru (în browser,location.href).
Comenzi înrudite
URLSearchParams: Citește și construiește parametrii unei adrese (?pagina=2&sort=pret), cu codificare automată.encodeURIComponent / decodeURIComponent: Codifică un text ca să poată fi pus sigur într-o adresă URL (spații, diacritice, &, =) și îl decodifică.location.reload / assign / replace: Reîncarcă pagina sau navighează la altă adresă, cu sau fără păstrarea paginii curente în istoric.