YerleÅik URL sınıfı, URLâleri oluÅturmak ve ayrıÅtırmak için uygun bir arayüz saÄlar.
Tam olarak bir URL nesnesi gerektiren aÄ oluÅturma yöntemi yoktur, dizeler(strings) yeterince iyidir. Yani teknik olarak URL kullanmak zorunda deÄiliz. Ama bazen gerçekten yardımcı olabilir.
URL oluÅturma
Yeni bir URL nesnesi oluÅturmak için sözdizimi:
new URL(url, [base])
urlâ URLânin dizesi veya yolu (temel ayarlanmıÅsa, aÅaÄıya bakın).baseâ isteÄe baÄlı, base ayarlanmıŠveurlâde yalnızca yol varsa bu durumda URLbaseâe göre yani tabana göre oluÅturulur.
ÃrneÄin, bu iki URL aynı:
let url1 = new URL('https://javascript.info/profile/admin');
let url2 = new URL('/profile/admin', 'https://javascript.info');
alert(url1); // https://javascript.info/profile/admin
alert(url2); // https://javascript.info/profile/admin
Mevcut URLâye göre bir yola ata:
let url = new URL('https://javascript.info/profile/admin');
let testerUrl = new URL('tester', url);
alert(testerUrl); // https://javascript.info/profile/tester
URL nesnesi, bileÅenlerine anında eriÅmemizi saÄlar, bu nedenle URLâyi ayrıÅtırmanın güzel bir yoludur.
let url = new URL('https://javascript.info/url');
alert(url.protocol); // https:
alert(url.host); // javascript.info
alert(url.pathname); // /url
İÅte kopya kaÄıdı:
hreftam url,url.toString()ile aynıprotocoliki nokta üst üste karakteri ile biter:searchâ bir dizi parametre, soru iÅaretiyle baÅlar?hashkarma karakterle baÅlar#- HTTP kimlik doÄrulaması varsa
uservepasswordözellikleri de vardır.
URL kullanabilirizfetch veya XMLHttpRequestâte, bir string urlânin beklendiÄi hemen hemen her yerde bir URL nesnesi kullanabiliriz.
Yöntemlerin büyük çoÄunluÄunda otomatik olarak bir stringe dönüÅtürülür.
Arama Parametreleri â?â¦â
Verilen arama parametreleriyle bir url oluÅturmak istediÄimizi varsayalım, örneÄin, https://google.com/search?query=JavaScript.
Latin olmayan karakterleri, boÅlukları vb. içerecek Åekilde doÄru kodlanmaları gerekir.
Bir süre önce, URL nesneler ortaya çıkmadan önce yerleÅik iÅlevleri kullanırdık encodeURIComponent/decodeURIComponent. Bazı sorunları var ama artık bu önemli deÄil.
Bunun için URL özelliÄi var: url.searchParams bu URLSearchParams türünde bir nesnedir.
Arama parametreleri için uygun yöntemler saÄlar:
append(name, value)â parametre ekleme,delete(name)â parametreyi silme,get(name)â parametreyi alma,getAll(name)â bu isimdeki tüm parametreleri al (eÄer çoksa örnek:?user=John&user=Pete),has(name)â parametrenin varlıÄını kontrol etme,set(name, value)â parametreyi ayarlama / deÄiÅtirme,sort()â parametreleri ada göre sırala, nadiren gerekliâ¦
Dolayısıyla URL nesnesi, url parametreleri üzerinde çalıÅmanın kolay bir yolunu da saÄlar.
ÃrneÄin:
let url = new URL('https://google.com/search');
url.searchParams.set('query', 'test me!'); // added parameter with a space and !
alert(url); // https://google.com/search?query=test+me%21
url.searchParams.set('tbs', 'qdr:y'); // add param for date range: past year
alert(url); // https://google.com/search?query=test+me%21&tbs=qdr%3Ay
// iterate over search parameters (decoded)
for(let [name, value] of url.searchParams) {
alert(`${name}=${value}`); // query=test me!, then tbs=qdr:y
}
Yorumlar
<code>kullanınız, birkaç satır eklemek için ise<pre>kullanın. EÄer 10 satırdan fazla kod ekleyecekseniz plnkr kullanabilirsiniz)