首页  >  文章  >  web前端  >  如何从外部脚本确定 Chrome 扩展安装状态?

如何从外部脚本确定 Chrome 扩展安装状态?

Susan Sarandon
Susan Sarandon原创
2024-11-17 01:29:03654浏览

How to Determine Chrome Extension Installation Status from an External Script?

从外部脚本确定 Chrome 扩展程序安装状态

在开发与外部 JavaScript 脚本交互的 Chrome 扩展程序时,您可能需要确定是否您的扩展程序安装在用户的浏览器上。此功能允许您相应地定制脚本的行为。

Chrome 引入了一项功能,使外部网站能够与扩展程序进行通信。通过将以下代码合并到扩展程序的后台脚本 (background.js) 中,您可以建立通信通道:

chrome.runtime.onMessageExternal.addListener(
    function(request, sender, sendResponse) {
        if (request) {
            if (request.message) {
                if (request.message == "version") {
                    sendResponse({version: 1.0});
                }
            }
        }
        return true;
    });

从外部网站,您可以向扩展程序发起消息,如下所示:

var hasExtension = false;

chrome.runtime.sendMessage(extensionId, { message: "version" },
    function (reply) {
        if (reply) {
            if (reply.version) {
                if (reply.version >= requiredVersion) {
                    hasExtension = true;
                }
            }
        }
        else {
          hasExtension = false;
        }
    });

此脚本将检查您的扩展是否存在,并为 hasExtension 变量分配一个值。唯一的限制是请求的异步性质,您需要在实现中适应这一点。

请记住向扩展程序的 manifest.json 文件中添加一个条目,以指定可以与之通信的域使用以下语法:

"externally_connectable": {
    "matches": ["*://localhost/*", "*://your.domain.com/*"]
},

2021 更新:

调用 chrome.runtime.sendMessage 时,如果未安装扩展,将会抛出异常或禁用。要处理这种情况,请在 sendMessage 回调中添加以下验证:

if (chrome.runtime.lastError) {
    // handle error
}

以上是如何从外部脚本确定 Chrome 扩展安装状态?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn