JS onclick = "history.go (-1) uniquement si sous mon domaine

J'ai un site Joomla et j'ai le problème suivant, j'ai besoin d'une fonction "Retour à la page de recherche" sur la page de détails de mon produit et j'utilise ce code après quelques modifications en fonction des réponses à ma question initiale:

<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> 

Maintenant, si un Visiteur vient d'un autre site directement sur ma page de produit et cliquez dessus, il sera redirigé vers la page d'accueil de mon site, et c'est correct, mais si je dans une page de recherche de mon site, cliquez sur une page de produit et Puis cliquez sur le dossier de retour pour rechercher, le visiteur est également redirigé vers ma page d'accueil, ce qui n'est pas bon, il devrait être redirigé vers la page précédente, qui était sa propre page de recherche.

Existe-t-il un moyen de modifier ce code pour accomplir quelque chose comme:

Si le visiteur vient de ma page de recherche ou de n'importe où dans mon site, en cliquant dessus, il sera redirigé vers la page précédente, et si un visiteur venait de l'extérieur de mon site, en cliquant dessus, il sera redirigé vers ma page d'accueil?

Vous pouvez utiliser document.referrer et le comparer à window.location.host .

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

Ainsi, votre HTML ressemblera à ceci:

 <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> 

L'ajout d'une logique de ramification en un gestionnaire de clics en ligne devient désordonné. Si vous pouvez déplacer ceci vers une fonction et le faire référence, il sera beaucoup plus lisible.

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

Modifier: Si vous n'êtes pas préoccupé par l'ajout de noms à la portée globale des pages, vous pouvez créer une fonction dans une balise de script immédiatement avant le lien que vous créez:

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