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