Google chrome extension 检测Office是否编辑文档、工作表和;幻灯片已安装

Google chrome extension 检测Office是否编辑文档、工作表和;幻灯片已安装,google-chrome-extension,Google Chrome Extension,有没有办法检测 是否从网页中运行的javascript安装在Chrome中(不是扩展) 如果已安装,我们希望在新选项卡中打开并编辑文档, 如果没有安装,我们想在当前选项卡中下载该文档。我刚刚翻阅了该扩展的源代码,发现它在manifest.json中有以下条目 "web_accessible_resources": [ "views/app.html", "views/qowt.html" ] 因此,您可以通过查询views/app.html是否存在来检测是否安装了扩展。只需调用ajax并检查x

有没有办法检测 是否从网页中运行的javascript安装在Chrome中(不是扩展)

如果已安装,我们希望在新选项卡中打开并编辑文档,
如果没有安装,我们想在当前选项卡中下载该文档。

我刚刚翻阅了该扩展的源代码,发现它在
manifest.json中有以下条目

"web_accessible_resources": [ "views/app.html", "views/qowt.html" ]
因此,您可以通过查询
views/app.html
是否存在来检测是否安装了扩展。只需调用ajax并检查xhr状态

function detectExtension(extensionId, successCallback, failCallback) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState === XMLHttpRequest.DONE) {
            if (xhr.status === 200) {
                successCallback();
            } else {
                failCallback();
            }
        }
    };
    xhr.open("GET", "chrome-extension://" + extensionId + "/views/app.html");
    xhr.send();
}

detectExtension("gbkeegbaiigmenfmjfclcdgdpimamgkj", function() {
    console.log("The extension is installed");
}, function() {
    console.log("The extension is not installed");
});

请记住,Google没有为这些文件发布API,因此它们可能会在任何时候消失。@abraham,是的,你是对的,这种方法有点棘手,有时可能会无效。但考虑到目前还没有官方api可供使用,这似乎是一个解决办法。谢谢。你的解决方案有效。希望Google能添加一个官方api/回调来检查是否安装了扩展。