1

На одном из сайтов, который я использую, есть проверка браузера, и потому, что мои браузеры указывают, что это Linux, а не Windows или Mac, появляется (на каждой странице) предупреждение о том, что я использую "неподдерживаемую" ОС.
Я пытался фальсифицировать пользовательский агент, но Chrome, похоже, не сохраняет эту настройку, а расширения переключателя пользовательского агента кажутся неэффективными.

Обнаружение браузера, по-видимому, объединено в один файл JavaScript. Итак, я полагаю, что если я смогу занести этот файл в черный список или заблокировать, он перестанет беспокоить меня по поводу моей "неподдерживаемой" ОС.

Итак, как мне заняться внесением в черный список или запретом этого файла? Решения, которые работают для нескольких браузеров, являются бонусом.

2 ответа2

3

Вы можете использовать блокировщик рекламы, такой как AdBlock. Затем вы можете заблокировать файл по его URL.

1

Вы можете достичь того же результата с помощью пользовательского скрипта. Это не помешает загрузке внешнего JavaScript, но отключит функции JavaScript alert() и confirm() . Удаление баннера с помощью JavaScript может вызвать мерцание, но вы можете добавить CSS, чтобы скрыть его.

Пользовательский скрипт

// ==UserScript==
// @name        No Nagging
// @description Disables nagging on harrison.edu
// @version     1.2
// @include     *://harrison.edu/*
// @include     *://*.harrison.edu/*
// @run-at      document-start 
// ==/UserScript==

var script = document.createElement('script');
var style = document.createElement('style');

script.appendChild(document.createTextNode(
    'window.alert=function(){};' + 
    'window.confirm=function(){};'
));

style.appendChild(document.createTextNode(
    '.topmenubar{display:none;}'
));

var interval = setInterval(function() {
    if (document.head) {
        document.head.appendChild(script);
        document.head.appendChild(style);
        clearInterval(interval);
    }
}, 10);

Как это устроено

Первые четыре инструкции создают элементы <script> и <style> . JavaScript внутри <script> заменяет глобальные функции alert() и confirm() на пустые функции; CSS внутри <style> скрывает баннер.

<script>
    window.alert=function(){};
    window.confirm=function(){};
</script>

<style>
    .topmenubar{display:none;}
</style>

Затем мы создаем интервал, который проверяет каждые 10 мс в элементе <head> уже существует.

Когда это происходит, мы добавляем созданные элементы в <head> и отменяем интервал.

Как установить

  1. Сохраните скрипт как no-nagging.user.js .

    • Открыть chrome://extensions .

    • Перетащите no-nagging.user.js на открытую вкладку.

    ИЛИ ЖЕ

    • Закройте Chrome и снова откройте его, выполнив следующую команду:

      google-chrome --easy-off-store-extension-install
      
    • Перетащите no-nagging.user.js в адресную строку.

  2. Нажмите Добавить .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .