如何在 javascript 中检测已安装的 MS Office 版本?

How to detect installed version of MS Office within javascript?

我需要知道用户机器上是否安装了 MS Office 2013 以使用特定方式打开 Office 文档以从网站进行编辑。

也许有一些特定于 Office 2013 的插件/activex?

我试图了解 Sharepoint 是如何完成这项任务的,但它太棘手了:

1
2
3
4
5
6
7
8
this.IsProtocolHandlerEnabled = function(d) {
        if (IsStrNullOrEmpty(d))
            return false;
        if (b[d] != null)
            return b[d];
        if (c)
            return a;
        ...

\\'a\\' 等于 \\'true\\' 如果 office 2013 可用,否则为 \\'false\\' 但我找不到变量 \\'a\\' 被更改的地方。


这种方法在 chrome 中对我有用,您可能需要简化 IE 旧副本的迭代:

1
2
3
4
5
var has2013=([].slice.call(navigator.plugins)
    .filter(function(a){return a.name.match("Microsoft Office")})[0].name||"")
    .match(2013)||false;

alert(has2013);