2

是否可以覆盖服务云控制台列表视图中的标准“新建”按钮和“详细信息”链接?

我想在单击这些按钮/链接时显示我的自定义 VF 页面。(如果是,如何?)

此外,服务云 API 工具包的任何示例都会有所帮助。

提前致谢。

4

1 回答 1

2

最好是创建单独的一组按钮,因为它的重定向更少......

如果你想真正覆盖标准的,我认为你必须使用普通的覆盖(在所有按钮上)但是基于 Javascript 的内容你会决定应该发生什么。

http://www.salesforce.com/us/developer/docs/api_console/index.htm - 控制台 JS API 会很方便。

制作一个使用standardController="Your_Object__c". 在内容中包括对控制台 API 的引用和类似于以下示例的代码isInConsole()

<apex:includeScript value="/support/console/27.0/integration.js"/>
<script type="text/javascript">
    function testIsInConsole() {
        if (sforce.console.isInConsole()) {
              alert("in console");
           } else {
              alert("not in console");
        }
    }
</script>

除非您将重定向到您的特殊页面或标准的“新建”和“编辑”。要强制进入原始编辑模式,您可以nooverride=1在 URL 中添加参数(在函数文档中也提到过URLFOR)。

正常的“新帐户”(如果指定,则导致覆盖):/001/e

强制转到您的页面:/apex/NewAccount

强制转到标准页面:/001/e?nooverride=1

所以现在你知道了如何检测你是否在控制台中以及去哪里。剩下的唯一问题是“应该重定向哪个窗口”。因为控制台是建立在框架上的,所以在使用 javascript 窗口、位置、父对象等对象时可能会得到不同的结果。这是如何在 JS 中使用框架的一般知识,所以我不打算把它写出来。但我将包含一个链接,指向srcUp()您可能想要重用的 salesforce 提供的功能。

老实说,我认为它仅在控制台上下文中定义,所以也许您可以放弃整体isInConsole支持typeof srcUp != 'undefined'

祝你好运 :)

于 2013-06-05T07:16:33.960 回答