从浏览器历史记录中删除当前页面
Removing current page from browser history
我正在我的网站上构建一个文本编辑器,工作流程如下。
- 在
/list
中,用户从将他们带到 /edit/[article_id]
的列表中选择他们想要编辑的条目。
- 用户完成他们的工作,然后点击提交。
- 服务器处理了这个东西,并将它们重定向回
/edit/[article_id]
,现在它反映了编辑后的工作。服务器还会在页面上激活一条闪现消息,表示编辑成功。
至此,用户可能想要返回 /list
并单击浏览器的后退按钮。这将根据他们提交的次数反复将他们带回给编辑。
我试过在页面的某处放置一个后退按钮,但很多用户都忽略了它。
我不想通过 AJAX 发布提交,因为那样也会影响闪信系统。
我喜欢做的是在用户提交时替换历史列表中的最后一个条目,而不改变其长度。可能吗?
试试这个
window.location.replace(url);
使用 replace()
后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用“后退”按钮导航到该页面。
使用window.close():
close();
注意:隐含当前选项卡。这相当于:
window.close();
或者您可以指定一个不同的 window。
所以:
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>
你在此处 return false 以防止事件的默认行为。否则浏览器将尝试转到 URL(显然不是)。
我正在我的网站上构建一个文本编辑器,工作流程如下。
- 在
/list
中,用户从将他们带到/edit/[article_id]
的列表中选择他们想要编辑的条目。 - 用户完成他们的工作,然后点击提交。
- 服务器处理了这个东西,并将它们重定向回
/edit/[article_id]
,现在它反映了编辑后的工作。服务器还会在页面上激活一条闪现消息,表示编辑成功。
至此,用户可能想要返回 /list
并单击浏览器的后退按钮。这将根据他们提交的次数反复将他们带回给编辑。
我试过在页面的某处放置一个后退按钮,但很多用户都忽略了它。
我不想通过 AJAX 发布提交,因为那样也会影响闪信系统。
我喜欢做的是在用户提交时替换历史列表中的最后一个条目,而不改变其长度。可能吗?
试试这个
window.location.replace(url);
使用 replace()
后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用“后退”按钮导航到该页面。
使用window.close():
close();
注意:隐含当前选项卡。这相当于:
window.close();
或者您可以指定一个不同的 window。
所以:
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>
你在此处 return false 以防止事件的默认行为。否则浏览器将尝试转到 URL(显然不是)。