我认为您需要了解两件事:标准重定向在 html 中以“javascript:redirect()”的形式发布。此重定向函数在 apex_4_1.js 中定义,只需覆盖它即可:
function redirect(where){
alert("im overriding the original redirect! It would've brought me to "+where);
};
树枝更烦人。我现在能想到的最好的方法是使用通过顶点按钮提交页面时触发的顶点事件“apexbeforepagesubmit”。你可以在这个上定义一个动态动作,可以在框架事件下找到,或者自己绑定一个事件:
$(document).bind("apexbeforepagesubmit", function(event, pRequest){
alert("before submit:"+pRequest);
});
显然,您需要在此处进行一些解析,因为重定向 url 将不可用(而且我认为您无法获得它,因为它是服务器端重定向)。我能想到的一些标准按钮是记录导航按钮(上一个,下一个)。但也应用更改,它会在处理后分支到同一页面,并显示成功消息。也许你可以尝试改变Target Type
from Page in this Application
to URL
?例如,您可以调用一个 javascript 函数。或者,也许您想要重定向到第 1 页?
为什么要进行整个设置?如果你想要一个固定的栏和一个菜单,为什么不拥有一个自定义页面模板和一些 css magix?似乎没有必要。
扩展评论:
我设置了一个非常小的示例-> http://apex.oracle.com/pls/apex/f?p=26186:1
该应用程序基于主题 24。我认为新主题要好得多由于减少了使用表格进行布局。我所做的只是:
- 共享组件 > 模板:我复制了没有侧边栏的标准一级标签页。然后,我在区域位置 3 和 4 周围放置了一些带有 ID 的 div,它们位于 html 标题和正文中。在页脚中还包含了一些 javascript(您当然可以将您的 javascript 放在一个单独的文件中并包含它)
- 共享组件 > CSS 文件:我上传了一个 CSS 文件来为我的 div 提供一些样式
- 第 0 页:这里我在位置 3 和 4 中创建了 2 个区域,并将它们的条件设置为不显示在登录页面上。默认情况下,页面 0 上的区域显示在该应用程序的每个页面中。
- 第 1 页:对于页面模板,我当然选择了我的自定义模板。无需进一步编辑,我的模板负责所有工作。所以左侧华丽的浮动菜单和顶部栏都是标准配置。它很粗糙,但只需要一些简单的编辑、css 和一些 javascript:你应该对此感到满意。
现在我将创建的每个页面都将采用相同的外观。从页面 1 到另一个页面的分支当然会进行重定向,但是因为页面 0 中的区域显示在每个页面上,所以它们看起来都一样 => 模板化。这似乎更符合您的要求,并且比整个 ajax 路线的工作量要少得多。
我所做的创建很简单:首先我编辑了我的模板(在复制现有模板之后)并将两个区域位置放在一个 div 中,并给 div 一个 id。然后我创建了一个页面,并为其分配了我的新模板。我为每个位置创建了两个区域。然后我开始四处乱逛,创建更多我需要的 div 和元素。我在页眉中添加了样式标签,并将 js 也放在那里。在我进行过程中,我编辑了我的模板以包含必要的内容(一些 div、一个类......)。最后,我将 css 移动到一个文件中,并将其包含在模板中。js也是一样。我将这些区域复制到第 0 页并从第 1 页删除它们。模板完成。随意看看它,创建一个新页面等。当然这只是一个小演示。不要为了风格开枪;-)
- Apex.oracle.com -> 登录
- 工作区:tompetrusbe
- 凭据:apex_demo/demo
- 应用程序:26186。固定菜单和顶部栏