在重定向到CTI控制台软电话中的其他URL后,未执行Salesforce交互/控制台方法。
我已在呼叫中心的软电话布局中映射了CTI适配器URL(例如http://domain1:port1/xyz/test.jsp),交互/控制台方法在该特定页面上执行
方法如:
sforce.interaction.runApex(...);
在点击事件中,我重定向到此页面上的其他URL(例如http://domain1:port2/abc/test1.jsp),未执行此交互/控制台方法。
方法如:
sforce.console.setCustomConsoleComponentPopoutable(...);
sforce.interaction.runApex(...);
在控制台上 - " Service Cloud Toolkit API不能与您的浏览器一起使用" 会在页面重定向后出现。
请帮助解决方案
答案 0 :(得分:1)
此错误是由于在将窗口消息发送到顶部窗口时验证sfdcOriginIframe和nounce属性引起的。
实际上,一旦加载了软件电话,就会从window.location.search字段填充这两个属性。此搜索字段类似于:
?sfdcIFrameOrigin=https%3A%2F%2Fap5.salesforce.com&nonce=3c1d1c360732e6754323247e711324b86d027c3c2809abb163754069d02365c5&isAdapterUrl=true&
我认为它们来自iframe广告代码的源代码
<iframe
id="SoftphoneIframe"
name="SoftphoneIframe"
allow="camera *; geolocation *; microphone *"
src="/loadSoftphone.html?sfdcIFrameOrigin=https%3A%2F%2Fap5.salesforce.com&nonce=3c1d1c360732e6754323247e711324b86d027c3c2809abb163754069d02365c5&isAdapterUrl=true"
style="display: block;"
width="100%"
height="650"
frameborder="0"
></iframe>
如果您重定向软件电话框架的位置,搜索字段将消失,并且您不能再在interact.js中使用任何方法。
所以也许有两种方法可以解决此问题:
将搜索字段保留在隐藏字段中,并将其作为searchQuery字符串带入下一页;
在重定向软件电话之前刷新顶部窗口
sforce.interaction.refreshPage();
最后,我使用第二种解决方案来解决我的问题。