我在我的网站上构建了一个文本编辑器,工作流程如下。
/list
中,用户从列表中选择要编辑的条目,然后将其转到/edit/[article_id]
。/edit/[article_id]
,现在它反映了已编辑的工作。服务器还会激活页面上的Flash消息,表明编辑成功。此时,用户可能希望返回/list
并点击浏览器的“后退”按钮。这将根据他们提交的次数将其重复带回编辑器。
我尝试在页面的某处放置一个“后退”按钮,但很多用户只是忽略它。
我宁愿不通过AJAX发布提交,因为这也会影响Flash消息系统。
我喜欢做的是在用户提交时替换历史记录列表中的最后一个条目,而不更改其长度。有可能吗?
答案 0 :(得分:11)
试试这个
window.location.replace(url);
使用replace()
后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用“后退”按钮导航到该页面。
答案 1 :(得分:0)
使用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(显然它不是。)