如何检测页面是否显示回来?

时间:2016-09-29 11:34:03

标签: javascript back-button

我们的主页是一个空白页面,可以检测浏览器的语言并自动将访问者重定向到他的语言页面。那里的后退按钮(例如使用Firefox)确实会返回我们的主页,不幸的是,他再次将他发送到他的语言页面。访客似乎被抓到我们的页面上,后退按钮不再起作用。

那么如何在我们的主页上检测到它是通过回来执行的呢?然后我会让Javascript再次按下后退按钮,而不是再次将访问者引入循环。

主页上的重定向是针对每种语言完成的。主页本身没有更多内容。重定向由window.open:

完成
<script language="javascript" type="text/javascript">
  language = (navigator.userLanguage || navigator.language);
  language = language.substring(0,2); 
  switch (language) {
    case 'fr':
      window.open("fr/index.html",'_self');
      break;
    case 'de':
      window.open("de/index.html",'_self');
      break;
    default:
      window.open("en/index.html",'_self');
      break;
  }
</script>

2 个答案:

答案 0 :(得分:0)

我使用window.sessionStorage知道第二次调用主页(通常来自其中一个语言页面的后退按钮):

<script language="javascript" type="text/javascript">
  if (window.sessionStorage.getItem("goBack")=="True"){
    window.sessionStorage.setItem("goBack","False"); window.history.back();
  }
  else {
    window.sessionStorage.setItem("goBack","True");
    language = (navigator.userLanguage || navigator.language);
    language = language.substring(0,2);
    switch (language) {
      case 'fr':
        window.open("fr/index.html",'_self');
        break;
      case 'de':
        window.open("de/index.html",'_self');
        break;
      default:
        window.open("en/index.html",'_self');
        break;
    }
  }
</script>

谢谢大家的意见和回答。你带领我走向了正确的道路!

答案 1 :(得分:-2)

js中与语言无关的代码。

<script>
function goBack() {
    window.history.back();
}
</script>
  

<button onclick="goBack()">Go Back</button>

请试试这个。