是否可以覆盖服务云控制台 ListView 中的标准“新建”按钮和“详细信息”链接?
我想在单击这些按钮/链接时显示我的自定义 VF 页面。(如果是,如何?)
此外,服务云 API 工具包的任何示例都会有所帮助。
提前致谢。
最佳答案
最好是创建一组单独的按钮,因为它会减少重定向......
如果你想真正覆盖标准的,我认为你必须使用正常的覆盖(在所有按钮上),但对于基于 Javascript 的内容,你将决定应该发生什么。
http://www.salesforce.com/us/developer/docs/api_console/index.htm - Console JS API 会很方便。
创建一个使用 standardController="Your_Object__c"
的 Visualforce 页面。内容中包括对控制台 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
现在你知道如何检测你是否在控制台以及去哪里。唯一剩下的问题是“哪个窗口应该重定向”。因为控制台是建立在框架上的,所以使用 javascript 窗口、位置、父级等对象可能会得到不同的结果。这是如何在 JS 中使用框架的常识,所以我不打算写下来。但我会添加一个指向 srcUp()
的链接Salesforce 提供的您可能想要重用的功能。
老实说,我认为它仅在控制台上下文中定义,因此也许您可以放弃整个 isInConsole
转而使用 typeof srcUp != 'undefined'
?
祝你好运:)
关于salesforce - 覆盖 Salesforce 服务云控制台中的标准按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16930202/