我有一个Joomla网站,我有以下问题,我需要在我的产品详细信息页面上使用“返回搜索页面”功能,并且根据对我的initian问题的回复,我在使用此代码进行了一些更改:< / p>
<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>
现在,如果访问者从另一个站点直接进入我的产品页面并点击此页面,他将被重定向到我网站的主页,这没关系,但如果我在我网站的搜索页面中,请点击产品页面然后点击后面的搜索链接,访问者也被重定向到我的主页,这不好,应该重定向到上一页,这是他自己的搜索页面。
是否有任何方法可以修改此代码以实现以下目标:
如果访问者来自我的搜索页面或来自我网站的任何地方,点击此处会将其重定向到上一页,如果访问者来自我的网站之外,点击此处会将其重定向到我的主页?
答案 0 :(得分:19)
您可以使用document.referrer
并将其与window.location.host
进行比较。
if (document.referrer.split('/')[2] === window.location.host)
if (document.referrer.indexOf(window.location.host) !== -1)
因此,您的HTML将如下所示:
<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>
答案 1 :(得分:3)
将分支逻辑添加到内联单击处理程序会变得混乱。如果你可以将它移动到一个函数并引用它,它将更具可读性。
if(document.referrer.indexOf('mysite.com') >= 0) {
history.go(-1);
}
else {
window.location.href = 'myHomePageUrl'; // this might just be '/' of your site
}
编辑: 如果您不关心向页面全局范围添加名称,则可以在创建链接之前立即在脚本标记中创建函数:
<script>
function backClick() {
// above conditional goes here.
return false;
}
</script>
<br/><a href="" onclick="backClick()"><?php echo JText::_('VOLTAR'); ?></a>
答案 2 :(得分:0)
我已经尝试了上面的一些代码,并且需要进行一些更改以使其对我有用。
function backClick() {
if (document.referrer.indexOf(window.location.host) !== -1) {
history.go(-1); return false;
}
else { window.location.href = 'https://stackoverflow.com'; }
}
<a onclick="backClick()">