繁体   English   中英

从浏览器历史记录中删除当前页

[英]Removing current page from browser history

我正在我的网站上构建一个文本编辑器,工作流程如下。

  1. /list ,用户从列表中选择要编辑的条目,将列表带到/edit/[article_id]
  2. 用户完成他们的工作,然后单击“提交”。
  3. 服务器处理该事物,并将它们重定向回/edit/[article_id] ,现在反映编辑的工作。 服务器还会激活页面上的Flash消息以指示编辑成功。

此时,用户可能想要返回/list并单击浏览器的“后退”按钮。 这将根据他们提交的次数将其重复带回编辑器。

我已经尝试在页面的某处放置一个Back按钮,但很多用户只是忽略它。

我宁愿不通过AJAX发布提交,因为这也会影响flash消息系统。

我喜欢做的是,在用户提交时替换历史列表中的最后一个条目,而不更改其长度。 可能吗?

试试这个

window.location.replace(url);

使用replace() ,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用“后退”按钮导航到该页面。

使用window.close():

close();

注意:隐含当前选项卡。 这相当于:

window.close();

或者您可以指定其他窗口。

所以:

function close_window() {
  if (confirm("Close Window?")) {
    close();
  }
}

使用HTML:

<a href="javascript:close_window();">close</a>

要么:

<a href="#" onclick="close_window();return false;">close</a>

您在此处返回false以防止事件的默认行为。 否则,浏览器将尝试转到该URL(显然不是这样)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM