Bunlardan hangisi kullanıcı aracısının doğru etki alanı üzerinden erişip erişmediğini kontrol etmeye karşı en etkilidir?
Etki alanına bir tür web proxy kullanarak erişiyorlarsa (js'yi bozma eğiliminde olduğu için) küçük bir js tabanlı 'üst çubuk' tarzı uyarı göstermek istiyoruz.
Aşağıdakileri kullanmayı düşünüyorduk:
var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
// showMessage ...
}
Bu, kullandığımız tüm alt alan adlarını halledecektir.
Hangisini kullanmalıyız host mu hostname mi?
Firefox 5 ve Chrome 12'de:
console.log(location.host);
console.log(location.hostname);
... her ikisi için de aynı şeyi gösterir.
Bunun nedeni bağlantı noktasının aslında adres çubuğunda olmaması mı?
W3Schools ana bilgisayarın bağlantı noktasını içerdiğini söylüyor.
**location.host/hostname doğrulanmalı mı yoksa IE6+ ve diğerlerinde var olacağından emin olabilir miyiz?
Küçük bir not olarak: interaktif bağlantı anatomisi
--
Kısaca (http://example.org:8888/foo/bar#bang
konumunu varsayarak):
hostname
size example.org
host
size example.org:8888
ana bilgisayar yalnızca belirtilen bir bağlantı noktası varsa bağlantı noktası numarasını içerir. URL'de özel olarak bir bağlantı noktası numarası yoksa, ana bilgisayar adı ile aynı değeri döndürür. Port numarasını eşleştirmek isteyip istemediğinizi siz seçersiniz. Daha fazla bilgi için https://developer.mozilla.org/en/window.location adresine bakın.
Sadece site adını almak için hostname istediğinizi varsayıyorum.
MDN: https://developer.mozilla.org/en/DOM/window.location
Her ikisi için de aynı sonucu alacaksınız gibi görünüyor, ancak hostname
parantez veya port numarası olmadan net ana bilgisayar adı içerir.