#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.