【问题标题】:XPages: Handle Browser Back ButtonXPages:处理浏览器后退按钮
【发布时间】:2016-07-25 20:48:28
【问题描述】:

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

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

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

【问题讨论】:

  • 你试过在文档数据源上设置ignoreRequestParams = true吗?

标签: xpages


【解决方案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

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

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);
}

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 2023-02-23
    • 2018-06-02
    • 1970-01-01
    • 2018-12-25
    • 2011-05-20
    • 2016-01-14
    • 2020-12-31
    • 2013-03-19
    相关资源
    最近更新 更多