我有一个WPF
带有WebBrowser
控件的应用程序,它从本地磁盘加载一个 HTML 文件。在 HTML 文件中,我有 javascript 代码来创建一个 Office Lync Presence ActiveX Control ( Name.NameCtrl.1
) 对象,该对象用于为某些用户显示联系人卡片。
对象已创建,但PresenceEnabled
名称控件的属性始终为false。有什么想法可以解决这个问题吗?
我在计算机上安装了 Lync 2013。当我使用 Lync 2010 时,相同的代码运行良好。
我的浏览器是IE 9,我在 IE 8 和 IE 10 上也观察到了同样的问题(目前仅针对 IE)。
Javascript代码:
try {
var presenceObj = new window.ActiveXObject("Name.NameCtrl.1");
} catch (err) { }
function showLync(element) {
try {
// Works fine till this part. However, presenceObj.PresenceEnabled is false.
presenceObj.ShowOOUI("somecalculatedalias", 0, $(element).offset().left, $(element).offset().top);
} catch (err) {
// goes into the catch block above with a "Permission denied" error (-2146828218)
}
}
更多详细信息:我已将 MOTW(网络标记)添加到我的 HTML 页面,以确保它在没有警告的情况下显示,并且我可以看到页面确实加载到了正确的区域。从页面属性:Local intranet | Protected Mode: Off
。
当我删除此 MOTW 时,我收到预期的警告“为了帮助保护您的安全,您的 Web 浏览器已限制此文件......(等等)”。当我允许被阻止的内容时,上面的相同代码可以正常工作,并且我可以从 ShowOOUI 调用中看到 Lync 弹出窗口。