2016-07-20 165 views
3

我爲Notes表單創建了一個XPage。我添加了一個編輯按鈕,它執行一些邏輯,然後將文檔模式切換到「編輯」和一個保存並關閉按鈕,保存文檔並重定向到Notes視圖的XPage。XPage:處理瀏覽器後退按鈕

這很好,但是當返回視圖後按下瀏覽器後退按鈕時,文檔會以編輯模式再次顯示。是否有可能返回到文檔,但處於只讀模式?

因爲按下編輯按鈕時會執行一些邏輯,並且我需要確保在用戶通過瀏覽器後退按鈕返回到文檔時也執行該邏輯,而不是隻在編輯模式下跳躍而不執行邏輯。

+2

您是否嘗試過在文檔數據源中設置'ignoreRequestParams = true'? – jpishko

回答

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