2015-11-20 725 views
0

下面是网页流量去一回浏览器后退按钮

其他网页...>起始页>队页>人员页

当用户到达PERSON page,我怎样才能使用户回到START page,而不是回到TEAM page当浏览器后退按钮被按下?

这是我在PERSON page上试过的。但点击后它不会移动到START page

window.onhashchange = function() { 
    window.history.go(-1); 
} 
+0

您无法覆盖后退按钮的功能。 – Cerbrus

+0

'window.history.go(-2)'有什么问题? – Lewis

+0

在TEAM页面上执行'location.replace(“personpage.html”)' – mplungjan

回答

0

要使后退按钮跳过流程中的页面,请使用location.replace链接到NEXT页面。因此,团队网页:

$(function() { 
    $(".person").on("click",function(e) { // when clicking 
    e.preventDefault(); 
    location.replace(this.href); // replace team page with person page in the history 
    }); 
}); 

假设

<a href="frank.html" class="person">Frank</a> 
<a href="bob.html" class="person">Bob</a> 
0

其简单,您可以检查浏览器的后退按钮被点击与否,如果它点击它重定向到Start Page但可以肯定的是因为当过您单击后退按钮它总是将它重定向到您的StartPage

未测试,但我认为这将做你想做的。

window.onpopstate = function(){ 
    window.location="StartPage";//you page 
    }; 
0

我想你可以通过保持在您的网站的轨道导航的,作为一个小例子做到这一点,我写这fiddle,检查导航如果它符合团队,个人,团队将采取用户返回到主页

我在这里想主要部分是自己处理用户的导航,并检查它是否与你期待什么符合。为了确保他们仍然可以访问团队站点,同时清除导航也将是一件好事

function handleNavigation() { 
    var loc = document.location.href.split('#')[1]; 
    if (!loc) { 
     loc = 'home'; 
    } 
    console.log(loc); 
    toggleClass(curloc, 'inactive'); 
    toggleClass(loc, 'inactive'); 
    if (curloc != loc) { 
     tracker.push(loc); 
     curloc = loc; 
     if (tracker.length > 3) { 
      tracker.shift(); 
     } 
     if (tracker.join(',') === 'team,person,team') { 
      document.location.replace(document.location.href.split('#')[0]); 
      return; 
     } 
    } 
} 

window.addEventListener('hashchange', handleNavigation); 
window.addEventListener('load', handleNavigation);