Javascript 是否关闭浏览器背面的模式,然后清除正向状态?

Javascript 是否关闭浏览器背面的模式,然后清除正向状态?,javascript,browser-history,Javascript,Browser History,我有一个表单,用户可以作为模式窗口打开。我希望能够检测到他们何时浏览并关闭窗口 我已经让它工作了,但是有一些问题: // in modal.open(): window.history.pushState(null, null); // in modal.close(): window.history.back(); 这样做的副作用是,他们可以向前浏览,而不会发生任何事情。。。这是一个边缘案例,可能不太重要,但它困扰着我 返回浏览时如何“擦除”当前状态?所以他们无法前进。检查此小提琴,用户无

我有一个表单,用户可以作为模式窗口打开。我希望能够检测到他们何时浏览并关闭窗口

我已经让它工作了,但是有一些问题:

// in modal.open():
window.history.pushState(null, null);

// in modal.close():
window.history.back();
这样做的副作用是,他们可以向前浏览,而不会发生任何事情。。。这是一个边缘案例,可能不太重要,但它困扰着我


返回浏览时如何“擦除”当前状态?所以他们无法前进。

检查此小提琴,用户无法前进


检查此小提琴,用户无法前进


这种方法留下了相反的问题。现在,除了无用的向前的历史,还有无用的向后的历史。也就是说,如果他们想浏览回去,他们必须点击两次。这种方法会产生相反的问题。现在,除了无用的向前的历史,还有无用的向后的历史。也就是说,如果他们想浏览回来,他们必须点击两次。
history.pushState(null, null, 'no-back-button');
window.addEventListener('popstate', function(event) {
  history.pushState(null, null, 'no-back-button');
});