Это то, что я делаю в своих собственных расширениях для проверки Firefox (FF) против Chrome:
const FF = typeof browser !== 'undefined';
Обновление: (1)
Здесь является объяснением .....
Я использую пространство имен chrome для Chrome и Firefox, но хотел бы знать, в каком браузере запущено расширение сети.
AFA Я понимаю, вопрос касается кода расширения, а не кода контента. Я использую приведенный выше код в фоновом скрипте в "firefox-webextensions"
или "google-chrome-extension"
фоновом скрипте.
С этого момента код будет выглядеть следующим образом:
if (FF) {...}
else { .... }
После создания скрипт содержимого не имеет к нему никакого отношения.
В случае разработчика, который каким-то образом решит использовать id="browser"
затем может быть добавлен еще один шаг, который возвращает логическое значение true|false
например
const FF = typeof browser !== 'undefined' && !!browser.runtime;
Ничего не стоит, что следующее возвращает object
или undefined
, а не логическое значение
const isFirefox = window.browser && browser.runtime;
Хотя он работает нормально в условных выражениях if()
, он не будет работать в других ситуациях, когда потребуется логическое значение (например, switch
)
(1) Примечание: Подчеркивая ответы, отговаривает людей тратить время и усилия на ответы на вопросы в будущем.