我目前正在尝试检测用户是否安装了某个Chrome扩展程序。该Chrome扩展程序不是我自己的,我也没有其源代码。我已经尝试了许多帖子中提到的方法,但都失败了。接下来详细说明了我尝试过的方法以及失败原因。
执行以下代码会导致“无法读取未定义的属性connect”:
var myPort=chrome.extension.connect('idldbjenlmipmpigmfamdlfifkkeaplc', some_object_to_send_on_connect);
尝试按照以下方式加载扩展资源以测试其是否存在,但是在浏览器中转到此URL会导致Chrome错误页面显示“未找到文件”(请注意,我通过访问Windows本地机器上的C:\ Users \\ AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions \ idldbjenlmipmpigmfamdlfifkkeaplc \ 1.0.0.1_0路径找到了此路径):
chrome-extension://idldbjenlmipmpigmfamdlfifkkeaplc/1.0.0.1_0/icon_16.png
使用Chrome管理,但执行时会出现控制台错误“无法读取未定义的属性get”。
chrome.management.get("idldbjenlmipmpigmfamdlfifkkeaplc", function(a){console.log(a);});
我遇到的大部分答案似乎都涉及到扩展是由试图检查它的同一人编写的。
chrome.extension.connect
将在任何扩展上下文中定义。 - Xan