使用历史记录API将后退按钮重定向到特定页面

时间:2016-12-09 15:35:09

标签: javascript html5-history

我有一个在线测试,可以顺序运行5个网页而不会暂停。我希望后退按钮(如果使用的话)在测试页面之前重定向到页面,防止它被用于循环测试页面。我认为历史API可能是一种方法,并尝试使用此脚本:

var stateObj = { url: "/index.php/toeic_introduction"};

// Updates the current history entry   timerArray[i][2].
window.history.replaceState(stateObj, "","/index.php/toeic_introduction");

// Creates a new history entry.
window.history.pushState(stateObj, "","/index.php/toeic_introduction");

这适用于url显示在地址行中但后退按钮不会根据需要重定向的程度。我甚至不确定是否可以通过这种方式控制后退按钮。我曾想过禁用后退按钮并在网上浏览过但这个选项似乎有点问题。我当然欢迎任何意见或建议。

2 个答案:

答案 0 :(得分:0)

如果添加带有Javascript历史记录的pushtState,则应使用window.onpopstate来管理后退按钮操作。

您将在此页面中找到所有必需的文档:

https://developer.mozilla.org/fr/docs/Web/API/WindowEventHandlers/onpopstate

答案 1 :(得分:0)

我想你需要绑定到popState事件并将你的重定向逻辑放在那里:

   $(document).ready(function() {
      if (window.history && window.history.pushState) {
        $(window).on('popstate', function() {
          // your logic here
        });
      }
   });