JS onclick =“history.go(-1)仅在我的域名下

时间:2013-10-17 02:05:22

标签: javascript php joomla

我有一个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>

现在,如果访问者从另一个站点直接进入我的产品页面并点击此页面,他将被重定向到我网站的主页,这没关系,但如果我在我网站的搜索页面中,请点击产品页面然后点击后面的搜索链接,访问者也被重定向到我的主页,这不好,应该重定向到上一页,这是他自己的搜索页面。

是否有任何方法可以修改此代码以实现以下目标:

如果访问者来自我的搜索页面或来自我网站的任何地方,点击此处会将其重定向到上一页,如果访问者来自我的网站之外,点击此处会将其重定向到我的主页?

3 个答案:

答案 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)

我已经尝试了上面的一些代码,并且需要进行一些更改以使其对我有用。

  1. 删除href =“”
  2. “ window.location.href”必须具有 http://

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()">