【问题标题】:Can't go back after javascript redirectjavascript重定向后无法返回
【发布时间】:2023-03-24 10:18:01
【问题描述】:

我目前在我的页面上运行了一个功能,可以根据启动页面上的选择来更改页面。

我当前的方法是location.href='/this/page/',尽管当我在浏览器中单击后退按钮时,它确实会返回但大约 5 毫秒(至少看起来像这样)并返回到页面,就像刷新一样。无论我点击多少次,它都不会回到我的启动页面。

我第一次点击返回时,它会执行我上面所说的操作,第二次点击会转到 之前 的页面。

编辑:如果重要的话,我在switch 中有这些。

编辑:这是我用来切换页面的 html/javascript。此代码仅在我的启动页面上。

HTML:

<select id="ds">
    <option>&gt;-- Select --&lt;</option>
    <option value="1">Blue Sky Travel</option>
    <option value="2">Paterson's Curse</option>
    <option value="3">Eugowra Progress Society</option>
    <option value="4">Eugowra Bushranger County</option>
</select>

Javascript:

$('select#ds').change(function(){
    var i = $(this).val();
    switch(i) {
        case "1":
            location.href='/bst/'
            break;
        case "2":
            location.href='/pc/'
            break;
        case "3":
            location.href='/eps/'
            break;
        case "4":
            location.href='/w8/'
            break;
        default:
    }
}).change();

【问题讨论】:

  • 您所描述的问题无法用您的解释重现。您遗漏了重要细节,请尝试发布SSCCE
  • 涉及多少个页面,它们的 url 是什么?启动页面是否有专门的 url 或者它是通过 AJAX 加载的?
  • @mellamokb 启动页面有一个专用的 url。我将这种方法用于 8 个不同的页面,它们都做同样的事情。其中四个,它们只是location.href='/pageX/';,其他四个相同,但在一个目录中。
  • @FabrícioMatté 如果我知道是什么原因造成的,我可以告诉你重要的细节,但在这种情况下,我不能。
  • 您似乎遇到了 Chrome 错误。您的代码中的 live test case 重现了您在 Chrome 中描述的问题,但不是 Firefox/IE。

标签: javascript jquery


【解决方案1】:

您应该在重定向的登陆页面上创建一个 cookie,如果 cookie 不存在,则仅在启动页面上执行 location.href 代码。这样,当用户回击时,他们不会立即被重定向。

【讨论】:

  • 我从来没有使用过 cookie,所以我并不想使用它们。我宁愿知道它为什么会这样做,以便我可以解决它。
  • @Spedwards 您的location.href 代码将在您加载页面后立即执行。您可以通过将该重定向代码放在条件语句中来解决它。
猜你喜欢
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 2015-07-13
  • 2017-11-19
相关资源
最近更新 更多