Javascript'teki window.location nesnesi

window.location nesnesi, güncel sayfanın URL/konum adresi hakkında bilgiler içerir ve URL adresini değiştirmek için metodlar sağlar.

Location, tarayıcının adres satırındaki URL hakkında bilgiler içerir. Sıklıkla da tarayıcıyı başka bir adrese yönlendirmede kullanılır.

<script type="text/javascript">
window.location = "http://www.daltinkurt.com";
</script>

Özellikleri:

Diyelim ki adres satırında http://www.daltinkurt.com:123/ABC/XYZ.aspx?Id=90&Par=120#part1 şeklinde bir URL yer alsın. (Gördüğünüz gibi URL ile ilgili herşey var)

Bu takdirde location ile erişebileceğimiz bilgiler şu şekildedir:

location.hash : #part1 (# dahil)
location.host : www.daltinkurt.com:123
location.hostname : www.daltinkurt.com
location.href : http://www.daltinkurt.com:123/ABC/XYZ.aspx?Id=90&Par=120#part1
location.pathname : /ABC/XYZ.aspx (baştaki / dahil)
location.port : 123
location.protocol : http: (: dahil)
location.search : ?Id=90&Par=120

Metotları:

location.reload()

Aktif sayfayı yeniler. Eğer true parametresi ile kullanılırsa (location.reload(true) şeklinde) sayfa sunucudan güncellenir. (varsayılanı false)
location.replace(url) Aktif sayfayı, belirtilen URL deki sayfayı yükleyerek yeniler. Bu metot ile tarayıcının geçmiş kaydını (history) etkilemez.

Örnek uygulama:

Yapmakta olduğum bir sitede, sayfa kendi domaininde değil, başka bir domainde bir iframe içerisinde çalışmaktadır. (Bir facebook uygulaması)

Eğer birisi, kaynak kodu inceleyerek, iframe adresini alıp direkt olarak sayfamı kendi domaini içerisinden çağırmak isterse buna izin vermemem gerekiyor.

Ben bu sorunu şu kodlarla aştım:

<script type="text/javascript">
  // eğer bir iframe içerisinde çalışmıyorsa...
  if (self == window.top) { 
    // http://www.kendiadresim.com hariç URLnin geriye kalanını alalım
    var loc = location.pathname + location.search + location.hash;
    loc = "http://www.baskabiradres.com/" + loc; location.replace(loc); // Yeni URL yi yükleyelim } </script>