是否可以覆盖服务云控制台列表视图中的标准“新建”按钮和“详细信息”链接?
我想在单击这些按钮/链接时显示我的自定义 VF 页面。(如果是,如何?)
此外,服务云 API 工具包的任何示例都会有所帮助。
提前致谢。
是否可以覆盖服务云控制台列表视图中的标准“新建”按钮和“详细信息”链接?
我想在单击这些按钮/链接时显示我的自定义 VF 页面。(如果是,如何?)
此外,服务云 API 工具包的任何示例都会有所帮助。
提前致谢。
最好是创建单独的一组按钮,因为它的重定向更少......
如果你想真正覆盖标准的,我认为你必须使用普通的覆盖(在所有按钮上)但是基于 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'
?
祝你好运 :)