Javascript 如何在Oracle ADF中禁用浏览器后退按钮
我知道。我不应该这样做。但是 我需要在ADF web应用程序中禁用浏览器后退按钮。我在jspx(我们可以调用main.jspx)上的initializeJavaScript函数中尝试了以下代码: 后退按钮未被禁用,但如果我在访问主页面后单击它(例如,从主页面之后的页面到主页面),它将返回到第二页。我根本不想按下后退按钮。可能吗?如果您知道一些专门针对ADF应用程序的信息(也不使用javascript),那么欢迎您给出答案 谢谢。以下是解决方案: 我有两个页面:page1.jspx和page2.jspx。我在adfc-config.xml中定义了一个控制流案例:Javascript 如何在Oracle ADF中禁用浏览器后退按钮,javascript,oracle-adf,Javascript,Oracle Adf,我知道。我不应该这样做。但是 我需要在ADF web应用程序中禁用浏览器后退按钮。我在jspx(我们可以调用main.jspx)上的initializeJavaScript函数中尝试了以下代码: 后退按钮未被禁用,但如果我在访问主页面后单击它(例如,从主页面之后的页面到主页面),它将返回到第二页。我根本不想按下后退按钮。可能吗?如果您知道一些专门针对ADF应用程序的信息(也不使用javascript),那么欢迎您给出答案 谢谢。以下是解决方案: 我有两个页面:page1.jspx和page2.j
<?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>
导航到page2.jspx后,如果单击“上一步”按钮,将再次重定向到第2页
希望这会有所帮助。简短回答,否:。虽然在讨论中有一些好的建议。我唯一能想到做的就是打开一个新的选项卡/窗口,但这可能比它的价值更令人烦恼。@vcsjones是的,我读过那个页面(以及谷歌上前4或5个结果页面中的所有其他页面)但我无法使用动态区域模式修改我的应用程序,原因有很多。真正做到这一点的唯一方法(除了广泛的XHR框架)是在每次交互中使用JavaScript的location.replace(),这意味着您不能发布任何内容。你认为你需要它或者它解决了任何问题,这是疯狂的。告诉我们您为什么需要禁用它,也许我们可以告诉您正确的解决方案(例如POST->redirect->GET)。是的,正确的解决方案是修复您的内部服务器错误,对不起:(感谢您的回复。我将尝试您的解决方案。无论如何,此解决方案不会禁用“后退”按钮,但只会重定向到同一页面。是的,这不会禁用“后退”按钮。您无法通过编程禁用它。
<?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>
<?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>