在 JavaScript 中检测 Chrome 扩展程序安装
在构建 Chrome 扩展程序时,可能有必要确定该扩展程序是否是从外部 JavaScript 脚本。这有助于根据扩展程序的存在来自定义网页内容。
根据 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; } );
此监听器将从网站接收消息。
从网站的脚本中,向扩展程序的 ID 发送消息:
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配置
记得在manifest.json文件中添加一个条目,指定允许向扩展程序发送消息的域:
"externally_connectable": { "matches": ["http://mylocalhostextensiontest/*", "http://*:*/*"] },
异步性质和错误处理
请注意,消息传递机制是异步的,因此您可能需要在您的
此外,如果未安装或禁用扩展,chrome.runtime.sendMessage 会抛出异常。在这种情况下,请在发送消息后检查 chrome.runtime.lastError:
if (chrome.runtime.lastError) { // Handle the error here... }
以上是如何检测是否使用 JavaScript 安装了 Chrome 扩展程序?的详细内容。更多信息请关注PHP中文网其他相关文章!