首页 > web前端 > js教程 > 正文

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

Susan Sarandon
发布: 2024-11-17 01:29:03
原创
651 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板