Wie erkennt man eine Erweiterung in einem Browser?

Ich versuche festzustellen, ob im Browser eines Benutzers eine Erweiterung installiert ist.

Ich habe es versucht:

var detect = function(base, if_installed, if_not_installed) {
    var s = document.createElement('script');
    s.onerror = if_not_installed;
    s.onload = if_installed;
    document.body.appendChild(s);
    s.src = base + '/manifest.json';
}
detect('chrome-extension://' + addon_id_youre_after, function() {alert('boom!');});

Wenn der Browser die Erweiterung installiert hat, erhalte ich eine Fehlermeldung wie:

Resources muss im Manifestschlüssel web_accessible_resources aufgeführt sein, damit Seiten außerhalb der Erweiterung @ geladen werden könne

GET chrome-extension: // ungültiges Netz :: ERR_FAILED

Wenn nicht, erhalte ich einen anderen Fehler.

GET chrome-extension: //addon_id_youre_after/manifest.json net :: ERR_FAILED

Hier ist ein Bild der Fehler, die ich erhalte:

Ich habe versucht, die Fehler zu fangen(Geige

try {
  var s = document.createElement('script');
    //s.onerror = window.setTimeout(function() {throw new Error()}, 0);
    s.onload = function(){alert("installed")}; 
    document.body.appendChild(s);
    s.src = 'chrome-extension://gcbommkclmclpchllfjekcdonpmejbdp/manifest.json';
} catch (e) {
  debugger;
  alert(e);
}

window.onerror = function (errorMsg, url, lineNumber, column, errorObj) {
    alert('Error: ' + errorMsg + ' Script: ' + url + ' Line: ' + lineNumber
    + ' Column: ' + column + ' StackTrace: ' +  errorObj);
}

So weit ich bin nicht in der Lage, die Fehler zu fangen ..
Jede Hilfe wird geschätzt

Antworten auf die Frage(2)

Ihre Antwort auf die Frage