Хочу детектить наличие установленного определенного расширения у юзера. Нашел такой сниппет -
https://xakep.ru/2012/03/19/58440/
Пытаюсь реализовать, но что-то не работает.
let detect = function(base, if_installed, if_not_installed) {
let 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://' + 'bcjindcccaagfpapjjmafapmmgkkhgoa', () => {
alert('boom!')
})
Элемент script успешно создается (или не создается, если айдишник не найден), но как хендлить вывод результата? Алерт выводится и когда установлен и когда не установлен.
АПД: переделал на промисах, выводит error, при том что элемент успешно создан. Почему?
let detect = new Promise(function(resolve, reject) {
let s = document.createElement('script')
s.src = 'chrome-extension://bcjindcccaagfpapjjmafapmmgkkhgoa' + '/manifest.json'
document.body.appendChild(s)
s.onerror = function () {
reject('errorrr')
}
s.onload = function () {
resolve('okk')
}
})
detect
.then((res) => {
console.log(res)
})
.catch((err) => {
console.log(err)
})
Что не так???
АПД2: проблема в изменениях, теперь надо чтоб было указано отлельно в
web_accessible_resources
поэтому не работает. Если кто-то знает другую лазейку подскажите?