Sayfa istendiğinde, geldiği sayfanın yönlendiricisini alırım. Diğer sitelerden gelen yönlendiricileri izlemem gerekiyor, sitemde bir sayfadan diğerine gitmek istemiyorum. Bunu nasıl yapabilirim? Birisi ilk kez sitemize gelincedocument.referrer öğesinin kendi sitemden olup olmadığını nasıl belirleyebilirim?
cevap
document.referrer.indexOf(location.protocol + "//" + location.host) === 0;
Başlangıçta JavaScript - Am I the Referrer?
adresinde yayınlanan, bir çerez içinde yönlendirme saklayın. Bu sayede, demomuzu indirirseniz, orijinal yönlendiriciyi çerezden alabilir ve hangi sitelerin sürüş konusunda etkili olduğunu öğreniriz.
Elbette, web sitemizden bir ziyaretçi isabet eden her sayfa, yönlendireni web sitemiz olarak gösterecektir. Biz bunları istemiyoruz. Bunu önlemek için ilk yaptığımız şey, yönlendirendeki "rüzgarlı" metnini aramaktı ve eğer öyleyse, sitemizden olduğunu varsayalım. Bununla ilgili sorun, bir arama terimi veya Windward hakkında konuşulan bir URL'nin parçası olarak, artık çok sayıda yönlendirme URL'sinin kendileri için rüzgarlı olduğunu saptadık. (Bu iyi haber, şu anda iyi bilinen bir ürün olduğumuz anlamına geliyor.)
Böylece en son yaklaşımımıza ulaştı. Bu, herhangi bir site için çalışmalı ve yalnızca yönlendiricileri aynı siteden reddetmelidir.
function IsReferredFromMe()
{
var ref = document.referrer;
if ((ref == null) || (ref.length == 0)) {
return false;
}
if (ref.indexOf("http://") == 0) {
ref = ref.substring(7);
}
ref = ref.toLowerCase();
var myDomain = document.domain;
if ((myDomain == null) || (myDomain.length == 0)) {
return false;
}
if (myDomain.indexOf("http://") == 0) {
myDomain = myDomain.substring(7);
}
myDomain = myDomain.toLowerCase();
return ref.indexOf(myDomain) == 0;
}
Bu https için ara vermiyor mu? – Pureferret
@Pureferret - evet, https işlemek de gerekiyor. Bu, halka açık web sitelerinin neredeyse hepsinin http olduğu 2010 yılında yazıldı. –
Çözümler alt etki durumunda sitesinde hiçbir alt etki durumunda eserlerini sundu herhangi bir alt etki alanları sunulan eğer biz sadece alanın kendi önce kontrol etmek zorunda ardından vardır:
document.referrer.replace("http://", '').replace("https://", '').split('/')[0].match(new RegExp(".*" +location.host.replace("www.", '')))
Bu çözüm, alan adından önce bu alt alanın aynı etki alanından geldiğini ekleyecektir.
document.referrer.includes(location.host);
- 1. URL bir görüntü olup olmadığını nasıl belirleyebilirim?
- 2. Evrişimin ayrılabilir olup olmadığını nasıl belirleyebilirim?
- 3. Açılan sayfanın açık olup olmadığını nasıl belirleyebilirim?
- 4. Ana bilgisayarın ulaşılabilir olup olmadığını nasıl belirleyebilirim?
- 5. Bir polihedronun dışbükey olup olmadığını nasıl belirleyebilirim?
- 6. Kendi sitemden youtube'a video yükleyebilirim
- 7. Sitemden sitemden ve sitemden gelen istek nasıl görülebilir 5
- 8. JQuery: Slayt etkinliğinin yukarı veya aşağı olup olmadığını nasıl belirleyebilirim?
- 9. .NET: Bir nesnenin COM nesnesi olup olmadığını nasıl belirleyebilirim?
- 10. React - Bileşenin durumsuz/işlevsel olup olmadığını nasıl belirleyebilirim?
- 11. Flash 9: Akış yolunun mono olup olmadığını nasıl belirleyebilirim?
- 12. Görüntü için belirli bir etiketin mevcut olup olmadığını nasıl belirleyebilirim
- 13. Bir ConstructorInfo nesnesinin yönetilmeyen bir parametresi olup olmadığını nasıl belirleyebilirim?
- 14. Django'da, belirli bir metnin çevirisi olup olmadığını nasıl belirleyebilirim?
- 15. ColdFusion'da, bir sorgu dizesi değişkeni olup olmadığını nasıl belirleyebilirim?
- 16. Uygulama paketinde bir dosya olup olmadığını nasıl belirleyebilirim?
- 17. VBA'da bir varyantın tam sayı olup olmadığını nasıl belirleyebilirim?
- 18. HTML sessionStorage öğesinin boş olup olmadığını nasıl kontrol edebilirim?
- 19. NSScrollView öğesinin şu anda kaydırılıyor olup olmadığını nasıl öğrenirim?
- 20. Bir dom öğesinin odaklanabilir olup olmadığını nasıl kontrol edebilirim?
- 21. jQuery datepicker öğesinin boş olup olmadığını nasıl kontrol edebilirim?
- 22. php öğesinin oturum dizisiyle var olup olmadığını kontrol edin
- 23. Scala öğesinin bir listede mevcut olup olmadığını kontrol edin
- 24. NSBezierPaths'ın kakaoda kesişip kesi olmadığını nasıl belirleyebilirim?
- 25. Kuyruk boş olup olmadığını nasıl kontrol edebilirim?
- 26. Bir GoogleMap Canvas öğesinin zaten boşta olup olmadığını kontrol edin
- 27. UITableView öğesinin başlangıcı olup olmadığını algılans Güncelleştirmeler/endUpdates durum
- 28. Visual C++ Runtime 8.0'ın yüklü olup olmadığını program aracılığıyla nasıl belirleyebilirim?
- 29. Kendi web sitemden android uygulaması yükleyin ve güncellemeyin
- 30. jQuery ajax $ .post talebinin neden başarılı olmadığını nasıl belirleyebilirim?
Vay, soru sordu, sonra kendi sitenize bir bağlantı ile 1 dakikadan kısa bir sürede yanıtladı? – Martin
Bir çözüm göndermenin iyi bir şey olduğunu anladım. Eminim diğerleri de aynı soruna çarpıyor. –
, aslında StackOverflow bu şekilde yararlı bir Soru Yanıtı göndermenizi önerir. Yeterli puan aldıktan sonra, bunu tek bir gönderimde yapabilirsiniz. – hoju