2010-08-05 29 views
55

Şu anki sayfanın ana bilgisayar adını alabildiğimi biliyorum.JavaScript kullanarak yönlendirenin alan adını/ana bilgisayar adını nasıl alabilirim?

var myhostname = location.hostname; 

Ancak yönlendirenin ana bilgisayar adını nasıl alabilirim? Yönlendiriciyi

var referrer = document.referrer; 

ile alabiliyorum ama maalesef JavaScript'te document.referrer.hostname bulunmuyor. Bu değeri nasıl alabilirim?

Bunun yararlı olduğu yerlerden biri, birisinin google.com adresindeki bir bağlantıyı tıklamasıdır. Yönlendiriciden google.com'u alabilmek istiyorum (sayfa ve sorgu dizesi değil).

cevap

25

Ayrıştırarak. document.referrer.split('/'); sizi yakınlaştıracak. yönlendirme bir tarayıcı geliyorsa Ya da bu

http://blog.stevenlevithan.com/archives/parseuri

bakmak, bu aklı başında olacak - ama her ihtimale karşı daha sağlam ayrıştırılmasını istiyorum.

+1

Teşekkürler. Basit ayrıştırma düzgün çalışıyor. – Keltex

+3

Ayrıştırma tekerleğini yeniden icat etmek istemezseniz: “var a = document.createElement ('a')' ile bir anchor öğesi oluşturun, sonra 'a.href = document.referrer' öğesini ayarlayın ve sonra sadece okuyun "a.hostname." Veya daha da basit (eğer NPM kullanıyorsanız), [ulocation] kullanın (https://npmjs.com/package/ulocation): 'npm install -S ulocation',' var Location = required ('ulocation') 've' Location (document.referrer) .hostname' işlevini kullanın. * Yasal Uyarı: Ben bu paketin yazarı * –

44

Bu yapacağını:

document.referrer.split('/')[2]; 

Example.

+0

zarif, teşekkürler :-) – Marcin

+0

bölme/benim için işe yaramadı. Bir sebepten virgülle ayrılmak zorunda kaldım. çalışır, ancak 2010'dan bu yana değişikliklerden kaynaklanıyor olabilir. –

32
function parseURL(url) { 
    var a=document.createElement('a'); 
    a.href=url; 
    return a.hostname; 
} 

Bu yine de bu, herhangi takipçileri yardımcı olabilir, nispeten eski bir sorudur.

+5

Doğru cevap budur. – YPCrumble

+0

Ayrıca bkz: http://tutorialzine.com/2013/07/quick-tip-parse-urls/ – YPCrumble

+3

Dahili tarayıcı özelliklerinin güzel kullanımı – alexreardon

1

Bu verileri ayıklamak için regexp'i kullanabilirsiniz.

string.match(/^http([s]?)://([a-zA-Z0-9-_\.]+)(:[0-9]+)?/);

0

Merhaba, alan adı almak için bu işlevi kullanın.

function getDomain(url) { 
    if (url) { 
     var match = /(?:https?:\/\/)?(?:\w+:\/)?[^:?#\/\s]*?([^.\s]+\.(?:[a-z]{2,}|co\.uk|org\.uk|ac\.uk|org\.au|com\.au))(?:[:?#\/]|$)/gi 
       .exec(url); 
     return match ? match[1] : null; 
    } else 
     return null; 
} 
1

Protokolü içerir, ancak document.origin çalışacaktır. Onunla birlikte hiçbir yol bilgisi olmayan Origin üstbilgisi üzerinden çalışır.

İlgili konular