我们在JavaScript中的部分代码在Outlook中的CRM解决方案中打开了新窗口。这部分代码尝试通过外部方法(在Outlook中提供)打开具有功能的新窗口。
function getOutlookHostedWindow() {
if (!!window.external) {
return window.external;
}
else {
return window.top.external;
}
}
function openStdWinWithFeatures(url, name, features) {
var externalOutlookHost = getOutlookHostedWindow();
var outlookWindowHost = null;
if (!!(url)) {
outlookWindowHost = externalOutlookHost.openWindow(url.toString(), name, features);
}
else {
outlookWindowHost = externalOutlookHost.openWindow(null, name, features);
}
outlookWindowHost.opener = window.self;
return outlookWindowHost;
}
这在CRM Outlook客户端2013和CRM Outlook客户端2013 SP1上按预期工作。但是,在更新到CRM Outlook客户端2013 SP1 UR1后,方法getOutlookHostedWindow()
将返回不包含方法openWindow()
的对象。实际上,当我调试此代码时,我发现window.external
和window.top.external
都没有任何方法。
这使我得出结论,Outlook API的方法openWindow()已被Outlook 2013(SP1 / UR1)的新版CRM客户端删除。
有没有人有类似的问题,是否有任何解决方法? 我也无法找到相应的文档,列出了Outlook托管应用程序可用于windows.external的方法。
谢谢!