2013-10-17 20 views
8

Bir Joomla sitem var ve şu sorunum var, ürün ayrıntıları sayfamda" Arama sayfasına dön "işlevine ihtiyacım var, ve ben benim initian soruya yanıtlara göre bazı değişikliklerin ardından bu kodu kullanıyorum:JS onclick = "history.go (-1) yalnızca alanımın altındaysa

<br/><a href="" onclick="if (document.referrer.indexOf(window.location.host) !== -1) alert('true'); { history.go(-1); return false; } else { window.location.href = 'mysite.com.br'; }"><?php echo JText::_('VOLTAR'); ?></a> 

bir Ziyaretçi ürünüm sayfasına doğrudan başka bir siteden geliyor ve bu tıklarsanız Şimdi, o benim sitenin ana sayfasına yönlendirileceksiniz, ve bu tamam, ama sitemde bir arama sayfasına girersem, bir ürün sayfasına tıklayın ve sonra arama bağlantısını geri tıklarsanız, ziyaretçi de ana sayfama yönlendirilir, iyi değil, yönlendirilmesi gereken önceki sayfa kendi arama sayfasıdır.

gibi bir şey başarmak için bu kodu değiştirmek için herhangi bir yolu var mı: ziyaretçi benim arama sayfasından veya herhangi bir yerde siteme gelen, bu onun önceki sayfaya yönlendirileceksiniz tıklayarak gelirse

ve eğer Bir ziyaretçi sitemin dışından geldi, bunu tıklayarak ana sayfama yönlendirilecek?

+0

Bu kesinlikle bir kullanıcı var sitenizde olsa bile bu yana http://stackoverflow.com/a/24056766/37055 ile kombine edilmelidir pek çok sebeple bir geçmişi olmayacak (yeni pencere, http: http, https) –

cevap

2

Bir satır içi tıklama işleyicisine dallanma mantığı eklemek dağınık olur. Bunu bir işleve taşıyabilir ve referans gösterebilirseniz, daha okunabilir olacaktır.

if(document.referrer.indexOf('mysite.com') >= 0) { 
    history.go(-1); 
} 
else { 
    window.location.href = 'myHomePageUrl'; // this might just be '/' of your site 
} 

Düzenleme: Eğer hemen oluşturmakta olduğunuz linke önce bir komut dosyası etiketi bir işlevi oluşturabilir sayfalar küresel kapsamı isimler ekleme endişe değilseniz :

<script> 
    function backClick() { 
     // above conditional goes here. 
     return false; 
    } 
</script> 
<br/><a href="" onclick="backClick()"><?php echo JText::_('VOLTAR'); ?></a> 
+0

güzel, ve nasıl HTML, JS ve PHP ile onclick argümanını nasıl birleştirebilirim? üzgünüm biraz kafam karıştı, ben sayfadaki bir metnin "aramaya geri dön" gibi: "
" diyen bir metni olması için bu IF yan tümcesini aşağıdaki kodla birleştirmem gerekiyor, ben programcı değilim, ama burada çalışıyorum Bunu çözmek için yardımcı olabilir misiniz? – ol30cean0

+0

Yukarıdaki düzenlemeye bakın. Sayfanız daha karmaşık hale geldikçe, sonuç olarak Javascript'inizin çoğunu ayrı bir komut dosyasına taşımak ve adlarını genel ad boşluğuna sızmaktan kaçınmak için olay işleyicilerinizi kapaklar içinde kaydettirmek istersiniz. Bu, oldukça gelişmiş olmaya başlar, bu yüzden sayfanız basitse, bu hile yapmalıdır. –

+0

Merhaba, senaryonun ihtiyacım olanın tersini yapıyor, yani eğer ziyaretçi başka bir alandan geliyorsa, script 'history.go (-1)' yi çağırır ve ziyaretçi diğer alan adına geri gönderilir. google, ve eğer ziyaretçi sitemdeki bir arama sayfasından bir ürün sayfasına gelirse ve ben de arama bağlantısına geri tıklarsam, sitemin ana sayfasına yönlendirilir, düzeltebilir misin? – ol30cean0

15

kullanabilirsiniz document.referrer ve window.location.host ile karşılaştırın.

if (document.referrer.split('/')[2] === window.location.host) 
if (document.referrer.indexOf(window.location.host) !== -1) 

Yani HTML gibi görünecektir:

<a href="" onclick="if (document.referrer.indexOf(window.location.host) !== -1) { history.go(-1); return false; } else { window.location.href = 'website.com'; }"><?php echo JText::_('VOLTAR'); ?></a> 
+0

evet, bu harika, ancak HTML, JS ve PHP ile onclick argümanını birleştirmek için "Geri arama" sayfasında "" sayfasında bir köprüye sahip olmak için yönetemiyorum, yardımcı olabilir misiniz? – ol30cean0

+0

Değiştirilmiş cevap. 'Website.com' adresini yönlendirmek istediğiniz web sitesine değiştirin veya mevcut URL'yi bir yol olmadan kullanmak için 'window.location.host' öğesini kullanın. – hexacyanide

+0

Firefox ve Chrome'da test ettim, bir google bağlantısından sayfama geldim, geri düğmesini tıkladık ve düğmenin bağlantısının tıklandığı bağlantıyı tıklamaya başlamadan önce tarayıcının alt çubuğunda görebiliyor olsam bile Sitemin ana sayfasına tıkladığımda, Google'a geri yönlendirildim, garip ... tamir edebilir misiniz? – ol30cean0