如果用户输入带有 action=editDocument 的 URL,我希望能够将他们重定向到相同的 URL,但使用 action=openDocument。
我假设我会使用 beforePageLoad 事件?
我怎样才能阻止他们转到 action=editDocument 并将它们重定向到 action=openDocument url?
如果用户输入带有 action=editDocument 的 URL,我希望能够将他们重定向到相同的 URL,但使用 action=openDocument。
我假设我会使用 beforePageLoad 事件?
我怎样才能阻止他们转到 action=editDocument 并将它们重定向到 action=openDocument url?
如果参数操作是“editDocument”,则以下内容将重定向回同一页面(从而阻止用户编辑文档):
<xp:this.beforePageLoad>
<![CDATA[#{javascript:
if (param.get("action")=="editDocument") {
context.redirectToPage(view.getPageName())
}
}]]>
</xp:this.beforePageLoad>
更新:正如马克在他的回答中指出的那样,如果包含上述答案,则不会保留 documentId 参数。您可以检查是否包含 documentId 参数,然后使用该参数进行正确的重定向:
<xp:this.beforePageLoad>
<![CDATA[#{javascript:
if (param.get("action")=="editDocument") {
context.redirectToPage(view.getPageName() + "?action=openDocument&documentId=" + param.get("documentId")
}
}]]>
</xp:this.beforePageLoad>
如果你有editDocument,你可能会在请求中有一个docID,在这种情况下view.getRequestUrl()
比view.getpageName()