![](/img/trans.png)
[英]How to disable Browser refresh and back button event in ADF using Java script
[英]How to disable browser back button in Oracle ADF
我知道。 我不应该这样做。 但...
我需要在ADF Web应用程序中禁用浏览器后退按钮。 我已经尝试过在jspx上的初始化javascript函数中使用以下代码(我们可以调用main.jspx):
window.history.forward(1);
后退按钮未禁用,但是如果我在访问主页后单击该按钮(例如,从主页后的页面到主页),它将返回第二页。 我想彻底解决后退按钮。 可能吗? 如果您知道一些专门针对ADF应用程序的知识(也无需使用JavaScript),欢迎您回答。
谢谢。
解决方法如下:
我有两个页面:page1.jspx和page2.jspx。 我在adfc-config.xml中定义了一个控制流案例:
<?xml version="1.0" encoding="windows-1252" ?>
<adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
<view id="page1">
<page>/page1.jspx</page>
</view>
<view id="page2">
<page>/page2.jspx</page>
</view>
<control-flow-rule id="__1">
<from-activity-id>page1</from-activity-id>
<control-flow-case id="__2">
<from-outcome>navigate</from-outcome>
<to-activity-id>page2</to-activity-id>
</control-flow-case>
</control-flow-rule>
</adfc-config>
因此,通过action="navigate"
我将从页面1导航到页面2。
现在,page1.jspx为:
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<f:view>
<af:document title="Page 1" id="d1">
<af:form id="f1">
<af:panelStretchLayout id="psl1">
<f:facet name="center">
<af:commandLink action="navigate" id="cl1">
Navigate
</af:commandLink>
</f:facet>
</af:panelStretchLayout>
<af:resource type="javascript">
var registerDisableBackButton = function () {
disableBackButton();
window.onload = disableBackButton();
window.onpageshow = function (event) {
if (event.persisted) {
disableBackButton()
}
}
window.onunload = function () {
void (0);
}
}
var disableBackButton = function () {
window.history.forward();
}
var onLoadEvent = function(event) {
registerDisableBackButton();
}
</af:resource>
</af:form>
<af:clientListener method="onLoadEvent" type="load"/>
</af:document>
</f:view>
</jsp:root>
导航到page2.jspx后,如果单击“后退”按钮,您将再次重定向到页面2。
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.