совместимость расширений браузера — проверьте, является ли браузер chrome или firefox

#javascript #google-chrome #google-chrome-extension #mozilla #firefox-addon-webextensions

#javascript #google-chrome #google-chrome-extension #mozilla #firefox-дополнение-webextensions

Вопрос:

У меня есть расширение Chrome для обновления, которое распространяется в chrome web Store и в дополнениях Mozilla. Мне нужно поддерживать кроссбраузерную совместимость, и я использую polyfill для достижения этой цели, но у меня небольшая проблема, исходный фоновый скрипт использует declarativeContent API, который доступен только в Chrome, поскольку это не сработает в Firefox, чтобы активировать pageAction то расширение, на которое полагается для работы, Есть ли решение проверить, является ли браузер chrome или Firefox в фоновом скрипте, а затем запустить declarativeContent API или tabs.query для вызова pageAction.show() и активации расширения?

Комментарии:

1. если (chrome.declarativeContent) { … } еще { … }

2. @wOxxOm значит, он вернет true, если api доступен? В документации нет никакой информации о, спасибо за помощь

3. Это легко проверить, alfaun0.. настройте свой Html-фрагмент в блокноте и нажмите F5 в браузере. В Chrome указатель будет найден и будет ненулевым, следовательно, достигнут истинный регистр, поскольку проверяется ненулевое значение. Объект chrome не существует в браузерах mozzilla, поэтому JS просто сломается при условии if, когда браузер не является chrome. В этом случае ни одно из условий не достигается. Чтобы убедиться, что это работает, установите свой chrome-флаг в true case.