XPages:处理浏览器后退按钮

时间:2016-07-20 16:30:56

标签: xpages

我为Notes表单创建了一个XPage。我添加了一个编辑按钮,它执行一些逻辑,然后将文档模式切换为“编辑”和一个保存并关闭按钮,该按钮保存文档并重定向到Notes视图的XPage。

这很好但是当返回到视图后按下浏览器后退按钮时,文档会再次以编辑模式显示。是否可以以只读模式返回文档?

因为按下编辑按钮时会执行某些逻辑,我需要确保当用户通过浏览器后退按钮返回文档时也执行此逻辑,而不是仅在编辑模式下向右跳转而不执行逻辑。

1 个答案:

答案 0 :(得分:1)

忽略请求参数对我来说不是一个选项。

我通过禁用客户端浏览器缓存(=强制客户端浏览器每次重新加载页面而不是显示页面的缓存版本)来解决它,并添加"是通过编辑按钮输入的编辑模式?"检查。

beforeRenderResponse:禁用此页面的浏览器缓存

var response:java.lang.Object = facesContext.getExternalContext().getResponse();
response.setHeader("Expires", "Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past (= expired)
response.setHeader("Pragma", "no-cache"); // HTTP/1.0
response.setHeader("Cache-Control", "no-store"); // HTTP/1.1

beforePageLoad: 检查是否通过编辑按钮输入了编辑模式。 如果没有,请更改为只读模式

if (!<was edit-mode entered via edit-button?>) {
    var pagePart:string = view.getPageName() + "?";
    var documentPart:string = "documentId=" + context.getUrlParameter("documentId");
    var actionPart:string = "&action=openDocument";
    context.redirectToPage(pagePart + documentPart + actionPart);
}