自定义按钮在Sevice Console的subtab打开页面

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/itsme_web/article/details/82387301

业务背景】:
在实施Service Cloud时,admin想要让support点击Create Case按钮直接创建一条Case记录(不显示Edit Mode),并在subtab直接显示详情页。

解决方案】:

{!REQUIRESCRIPT("/soap/ajax/40.0/connection.js")} 
{!REQUIRESCRIPT("/soap/ajax/40.0/apex.js")}
{!REQUIRESCRIPT("/support/console/40.0/integration.js")}
if(confirm('{!$Label.Create_Case_Confirm_Message}')){
	var jsonResult = sforce.apex.execute("CaseOnClickJSHandler", "quickNewCase", {recId:'{!Account.Id}', type: 'Case'}); 
	var result = JSON.parse(jsonResult); 
	if(result.code == '0') {
		var url = result.msg;
		if (sforce.console.isInConsole()) { 
			navigateToUrl(url + '?inline=1');
		} else { 
			window.open(result.msg,'_blank'); 
		}
	}else {
		alert(result.msg);
	}
}

注意事项】:
1. 这里不能像classic自定义按钮那样直接跳转页面,需要判断一下是否时Console环境;
2. isInConsole方法必须引用"/support/console/40.0/integration.js"才有效;
3. 如果没有'?inline=1',跳转页面时在subtab会先显示classic下的整个page(含header),之后才会加载目标效果。

最终效果】:

【参考资源】:Different ways of navigation

猜你喜欢

转载自blog.csdn.net/itsme_web/article/details/82387301