是否可以覆盖服务云控制台列表视图中的标准“创建新”按钮和“详细信息”链接?
我想点击这些按钮/链接显示我的自定义VF页面。(如果是的话怎么样?)
此外,服务云API工具包的任何示例都会有所帮助。
提前致谢。
答案 0 :(得分:2)
最好是创建单独的按钮组,因为它的重定向较少......
如果你想真正覆盖标准的那些,我认为你必须使用普通覆盖(在所有按钮上),但是基于Javascript的内容你将决定应该发生什么。
http://www.salesforce.com/us/developer/docs/api_console/index.htm - 控制台JS API将非常方便。
制作一个使用standardController="Your_Object__c"
的visualforce页面。在内容中包含对Console 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>
除非您将重定向到特殊页面或标准“新”和“编辑”。要强制进入原始编辑模式,您可以在URL中添加nooverride=1
参数(在URLFOR
函数的文档中也会提到)。
正常的“新帐户”(如果指定则会导致覆盖):/001/e
强制转到您的页面:/apex/NewAccount
强制转到标准页面:/001/e?nooverride=1
所以现在你已经知道如何检测你是否在控制台中以及在哪里。唯一剩下的问题是“哪个窗口应该重定向”。由于Console是基于框架构建的,因此使用javascript窗口,位置,父对象等对象可能会得到不同的结果。这是如何在JS中使用框架的一般知识,所以我不打算写出来。但是我会在salesforce提供的srcUp()
函数中添加一个您可能想要重用的链接。
我认为它仅在控制台上下文中定义为诚实,所以也许你可以放弃整个isInConsole
而转而支持typeof srcUp != 'undefined'
?