Обнаружьте ТОЛЬКО блокировщик источника uBlock (Vue)

#javascript #vue.js #adblock

Вопрос:

Я использую MoonPay для покупки криптовалют в своем приложении Vue, но uBlock Origin блокирует обнаружение своего IP-адреса, что блокирует его загрузку.

Похоже, это не проблема с другими блокировщиками рекламы, поэтому я хотел бы отобразить сообщение пользователю, если у пользователя установлен источник uBlock, однако проблема, похоже, не возникает с другими блокировщиками рекламы.

Есть ли способ обнаружить какой-либо один блокировщик рекламы или пакет, который может возвращать строку активного в данный момент блокировщика рекламы?

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

1. Если у них установлены блокировщики рекламы, это на них. Они уже знают, как работают списки блокировок и исключения, поэтому, если сайт не загружается должным образом для них, позвольте им делать с этим то, что они хотят.

2. Возможно, обнаружить сбой в JS и просто сообщить, что в этом проблема, предположив, что это может быть связано с блокировщиком рекламы?

3. @ShadowRanger Возможно, я мог бы обнаружить неудачную выборку и отобразить модальное значение только для этого события ошибки, а не полагаться на обнаружение блокировщика рекламы. Отличное нестандартное мышление!

4. @TimTitus: Точно. И это не просто предположение только об одной возможной причине. Строгой защиты конфиденциальности в браузер, чтобы отключить даже безопасно междоменных запросов, или сетевой брандмауэр блокирует несекретные доменов, или просто их сайта вниз (или пользователя маршрутизатора сдаются после того, как страница загрузится, прежде чем запрос будет отправлен, как со мной случилось пару минут назад), может все же проблема; проблема в том, что пользователь не может попасть на сайте, это не ваша работа, чтобы догадаться почему .

5. @ShadowRanger это решение сработало идеально! Еще раз спасибо.

Ответ №1:

как предположил @ShadowRanger, я решил эту проблему, отловив ошибку Axios из заблокированной выборки сторонних ресурсов и отобразив модальное сообщение пользователю, чтобы предупредить его о проблеме.