2016-10-31 4 views
-2

Мне было предложено отобразить всплывающее окно для пользователя, если у него есть хотя бы 1 из 5 расширений.На веб-странице, как я могу обнаружить, что конкретное расширение загружается в браузере?

Расширения: adblock plus, adBlock, Disconnect и т.д ...

Я не знаком со всеми расширениями и их влияние на DOM (за исключением adblock plus), поэтому я ищу функцию, которая будет проверить идентификатор расширения, если он существует в браузере?

Я пробовал:

var detect = function(base, if_installed, if_not_installed) { 
    var 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://' + 'gcbommkclmclpchllfjekcdonpmejbdp', function() {alert('boom!');}); 

который я получил от: http://blog.kotowicz.net/2012/02/intro-to-chrome-addons-hacking.html, он говорит, что это работает, но я получил эту ошибку:

Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.

+1

Если у вас возникли проблемы с просмотром вашего сайта с помощью HTTPS В любом случае, это скорее всего из-за неправильного HTTPS. Я бы рекомендовал вам изучить это. – Frxstrem

+2

«Пожалуйста, отключите SUPER USEFUL extension для лучшего просмотра», серьезно? Что дальше «Этот сайт лучше всего просматривать с разрешением 800x600 пикселей в Internet Explorer»? Потому что это кажется огромным шагом назад в том, как мы делаем Интернет в наши дни. – vlaz

+0

@vlaz, я согласен с вами, но, как вы знаете, много раз вы получаете задания из отдела «продукта», которые не всегда вы согласны с ... –

ответ

-1

Вы можете проверить текущий протокол с window.location.protocol

1

Это расширение, вероятно, вносит изменения в заголовки HTML или, по крайней мере, что-то в DOM. Итак, выясните, что это за изменение, и обнаружите, что с помощью JS.

Если это нехорошо, посмотрите здесь.
Check whether user has a Chrome extension installed

+1

Почему это было приостановлено? – TheValyreanGroup

+0

Это совершенно законный ответ на устранение неполадок. Пожалуйста, не спускайте вниз. – Korgrue

+0

Не уверен, если это причина (не было downvote), но это только учетные записи для Chrome. Он также использует идентификатор, но я не знаю, генерируется ли это, если вы не получаете расширение из хранилища, а HTTPS Everywhere доступно на странице EFF. EDIT: или ... нет. По-видимому, ссылка на EFF-страницу идет в магазин. Так поцарапайте это. – vlaz