我正在尝试让 Lync 状态指示器在 Internet Explorer、FireFox 和 Chrome 上正常工作。根据这些参考文献,这是可能的。
- http://blogs.msdn.com/b/tomholl/archive/2013/03/02/integrate-lync-into-your-intranet-sites-using-the-namectrl-plug-in.aspx http://blogs.msdn.com/b/tomholl/archive/2013/03/02/integrate-lync-into-your-intranet-sites-using-the-namectrl-plug-in.aspx
- Firefox:通讯器存在问题 https://stackoverflow.com/questions/2196163/firefox-communicator-presence-issue#24619878
参考文献 1 有一个 HTML 文件示例。我下载了它并一直在尝试。经过两次小修改(完成关闭</html>
标记并修复 JavaScript 替换函数以使用全局正则表达式),它在 Internet Explorer 上工作正常,但在 FireFox 和 Chrome 上失败。当我使用 Chrome 或 FireFox 的 JavaScript 调试器时,创建<object/>
元素被跳过,即第 7 行到第 13 行。第 14 行执行,但由于该元素从未创建,变量c
保持为空。
1. function CreateNPApiOnWindowsPlugin(b) {
2. var c = null;
3. if (IsSupportedNPApiBrowserOnWin())
4. try {
5. c = document.getElementById(b);
6. if (!Boolean(c) && IsNPAPIOnWinPluginInstalled(b)) {
7. var a = document.createElement("object");
8. a.id = b;
9. a.type = b;
10. a.width = "0";
11. a.height = "0";
12. a.style.setProperty("visibility", "hidden", "");
13. document.body.appendChild(a);
14. c = document.getElementById(b)
15. }
16. } catch (d) {
17. c = null
18. }
19. return c
10. }
我尝试将上述代码从使用直接 JavaScript 转换为使用等效的 jQuery,但我仍然看到相同的行为。涉及添加的行<object/>
元素被跳过。参考文献2,上面有类似的代码。我对此进行了测试,并在 FireFox 中再次看到了相同的行为。 Chrome 的调试器以类似的方式运行,跳过创建<object/>
元素,尽管它似乎跳过了前后的附加行。
Edit
经过更多的调试和使用alert
的陈述,看来IsNPAPIOnWinPluginInstalled
正在返回false
or undefined
。其他调查表明 NPAPI 浏览器的 Office 插件不存在或未正确安装。列表navigator.mimeTypes
不包括"application/x-sharepoint-uc"
,虽然它确实有"application/x-sharepoint"
。该计算机安装了 MS Office 2010 Pro 和 Lync 2013,因此我不确定为什么缺少此插件,而其他与 MS Office 相关的插件却出现在 FireFox 的列表中。
Edit 2
我暂时搁置了这件事。但它仍在我的队列中。我的计算机上最近安装了完整的 Office 2013。这似乎已经在FireFox上注册了更新的插件。我的 Chrome 仍然存在问题。
在 FireFox 上,在删除我对示例代码进行 jQuery 化的尝试后,它开始正常工作。在 Chrome 上仍然失败。 Chrome 和 FireFox 在这个问题上的主要区别在于...\Office15\NPSPWRAP.DLL
是 FireFox 的注册插件,但不是 Chrome 的注册插件。关于如何在 Chrome 中注册有什么建议吗?