2012-04-25 17 views
10

SADECE yönlendiren URL'lerden alan adını almak istiyorum. Çoğunlukla olsun yönlendirme URL'lerin yukarıdaki gibi yönlendiren URL'ler olsun Whenver http://www.davidj.com/pages/flyer.asp & http://www.ronniej.com/linkdes.com/?adv=267&loc=897javascript - SADECE document.referrer alanından alan olsun

, sadece alan örnek almak istiyorum şunlardır: Ben .split yöntemini kullanarak denedi http://www.davidj.com

ama sorun yaşıyorum onu kullanarak.

cevap

12
var url = "http://www.ronniej.com/linkdes.com/?adv=267&loc=897" 
var referrer = url.match(/:\/\/(.[^/]+)/)[1]; 

http://jsfiddle.net/hyjcD/

if (document.referrer) { 
    url = document.referrer; 
    ref = url.match(/:\/\/(.[^/]+)/)[1]; 
} 
+0

@Reminson için teşekkürler .. işe yarıyor ama bir sorunum var .. Bir .js dosyası kullanarak etki alanımdaki kodu yerleştirdim ve temel olarak tüm sayfalara yükleniyor. Tek sorun budur. Doğrudan bir sayfaya eriştiğimde (bir yönlendiren URL'si olmadan) şu hatayı alıyorum: url.match (/: \/\/(. [^ /] +) /) [1]; ** null ** – Stephen

+0

kullanıyorum: var url = unescape (document.referrer); var ref = url.match (/: \/\/(. [^ /] +) /) [1]; – Stephen

+0

çünkü 'document.referrer' 'undefined' ve eşleşecek bir url yoktur,' if (document.referrer)' ifadesinin "undefined" olup olmadığını kontrol etmeli ve sonra bu kodu çalıştırmalısınız. – undefined

4

Zincir bölünmüş, dilim ve katılmak:

document.referrer.split("/").slice(0,3).join("/") 
8

Eğer o kadar daha sonra çok daha kolay

var anchor = document.createElement("a"); 
anchor.href = "http://www.davidj.com/pages/flyer.asp"; 

console.log(anchor.protocol + "//" + anchor.host); // "http://www.davidj.com" 

küçük parçalar olsun içten kullanmak bir çapa elemana ve bu birinden url yazabilirsiniz bölme ya da onun gibi bir şeye dikkat etmek zorunda değilsiniz ... oldukça mantıklı ... doğal çapa, en az

URL ile ilgili olarak window.location ile aynı özelliklere sahiptir. 210

DÜZENLEME: IE 6-9 Bir düzenli ifade kullanabilirsiniz

+1

IE anchor.host' 'noktasını eklemek değil, hiç' location.host' görünmektedir. Bağlantı noktasına ihtiyacınız yoksa, 'anchor.hostname' ve' location.hostname' kullanabilirsiniz. –

+0

paylaşım için teşekkürler –

0

// anchor.host için varsayılan bağlantı noktasını "http://www.davidj.com:80 ekler :

var matchHost = /^https?:\/\/.*\//; 

var match = matchHost.exec('http://www.davidj.com/pages/flyer.asp'); 
if(match) { 
    var host = match[0]; 
    console.log(host); 
} 
0
if (document.referrer.split('/')[2] == "domain") { 
    //................ 
}        
İlgili konular