@triggerfinger

Почему не работает код (определение установленного расширения)?

Хочу детектить наличие установленного определенного расширения у юзера. Нашел такой сниппет - 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 поэтому не работает. Если кто-то знает другую лазейку подскажите?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Если кто-то знает другую лазейку подскажите?

Для этого и ввели web_accessible_resources, чтобы автор расширения явно указывал файлы, которые могут подгружаться на страницу.
Попробуйте детектить расширение по другим признакам.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы