Google Chrome автоматически добавляет сайты в список поисковых систем?

Я заметил, что некоторые сайты (например, сайты Stack Exchange, Dell и т. Д.) Автоматически добавляются в список поисковых систем в Google Chrome.

Они даже добавляют комбинацию клавиш для их ввода. Вот некоторые примеры:

  • Dell: Клавиатура -> Dell.com
  • Stack Exchange Веб-мастера: Клавиатура -> webmasters.stackexchange.com
  • Reuters: Клавиатура -> reuters.com

Q1: Это поведение по умолчанию в Chrome? (Чтобы веб-сайты добавляли себя в список поисковых систем?)

Q2: Можно ли отключить это поведение в Chrome?

Примечание. Я использую последнюю версию Chrome: 11.0.696.57 для Windows 7 64, и у меня есть только одно расширение: Google URL shortener.

11 Solutions collect form web for “Google Chrome автоматически добавляет сайты в список поисковых систем?”

Есть два способа сделать это:

  1. Добавьте этот псевдоним в Tamper Monkey :

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]'); if (elOpenSearch) elOpenSearch.remove(); 
  2. Если вы не являетесь обычным пользователем Tamper Monkey и не хотите тратить 15-20 МБ оперативной памяти только для того, чтобы загрузить расширение Tamper Monkey для этой цели, тогда вы можете свернуть свой собственный сверхлегкий удлинитель, который не будет потреблять какую-либо память , Инструкции приведены ниже.

Как создать собственное расширение, чтобы удалить <link> OpenSearch <link> и не позволять Chrome автоматически добавлять поисковые системы:

  1. Создайте папку, в которую вы будете помещать файлы расширений.

  2. Внутри этой папки создайте два текстовых файла с именами manifest.json и content.js содержащие код, приведенный ниже.

    manifest.json

     { "manifest_version": 2, "name": "Disable OpenSearch", "version": "1.0.0", "description": "Remove the OpenSearch <link> tag to prevent Google Chrome from auto-adding custom search engines.", "content_scripts": [ { "matches": ["<all_urls>"], "js": ["content.js"] } ], "permissions": [ "http://*/*", "https://*/*" ] } 

    content.js

     var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]'); if (elOpenSearch) elOpenSearch.remove(); 
  3. В Chrome перейдите в chrome://extensions/ (введите это в строку URL).

  4. Включить режим разработчика.

  5. Нажмите «Загрузить распакованное расширение», выберите папку, созданную на шаге 1, и нажмите «ОК».

Поздравления! Теперь Google Chrome должен быть немного менее раздражающим для использования :-).

Ограничение: Это решение не на 100% надежнее. Если вы перейдете на URL-адрес, содержащий параметр поиска (например, https://cdnjs.com/#q=fastclick ), то в редких случаях будет добавлен пользовательский поисковый движок. Я подозреваю, что это связано с тем, что Chrome может анализировать <link> OpenSearch <link> прежде чем у пользователя или расширения будет возможность удалить его из DOM.

Это делало меня абсолютно безумным, поэтому я нашел хакерское, но эффективное решение проблемы.

Chrome хранит поисковые системы в простой базе данных sqlite3. Я обнаружил, что вы можете создать триггер, когда хром отправляется, чтобы добавить поисковую систему, из-за которой оператор вставки базы данных игнорируется.
Обратите внимание, что поисковые системы по-прежнему хранятся в памяти, поэтому они будут отображаться в списке до перезапуска браузера . Однако вам не придется их очищать все время, и поэтому, если вы хотите добавить свои собственные поисковые системы, вам не придется беспокоиться о том, чтобы случайно удалить их (да, вручную добавление поисковых систем все равно будет работать).

Сначала вы должны найти файл Web data .

  • Mac OS X: ~/Library/Application Support/Google/Chrome/Default/Web Data

  • XP: C:\Documents and Settings\<username>\Local Settings\Application Data\Google\Chrome\User Data\Default\Web Data

  • Vista / 7: C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\Web Data

  • Linux: ~/.config/google-chrome/Default/Web Data или ~/.config/chromium/Default/Web Data

Затем откройте его с помощью редактора sqlite3.

В этот момент Chrome должен быть отключен.

На официальном веб-сайте sqlite есть страница загрузки с предварительно скомпилированной утилитой командной строки для различных операционных систем. Хотя любой редактор, способный работать с базами данных sqlite3, будет работать.

Для утилиты командной строки используйте следующую команду (не забудьте избежать или указать пробел в имени файла):

 sqlite3 /path/to/Web\ Data 

Добавьте триггер.

CREATE TRIGGER no_auto_keywords ПЕРЕД ВСТАВКОЙ КЛЮЧЕВЫЕ ВОПРОСЫ WHEN (NEW.originating_url НЕ НУЛЛ И NEW.originating_url! = '') BEGIN SELECT RAISE (IGNORE); КОНЕЦ;

Все готово. Закройте редактор и запустите хром.


Способ, которым он работает, заключается в том, что когда хром отправляется, чтобы добавить автоматическое добавление поисковой системы в таблицу keywords , хром устанавливает поле originating_url на веб-сайт, из которого он пришел. Триггер в основном ищет любые вставки с непустым полем RAISE(IGNORE) и выдает RAISE(IGNORE) который заставляет оператор молча пропускать.
В добавленных вручную поисковых системах нет originating_url , и поэтому триггер позволяет добавлять их.

  1. Да, это по дизайну .
  2. Нет , нет возможности отключить это.

Благодаря коду @ 10basetom и вдохновленному @shthed, я выпустил « Не добавлять пользовательские поисковые системы расширения Chrome, которые делают именно это.

Здесь вы найдете исходный код.

Дайте мне знать, что вы думаете!

Попробуйте использовать этот простой скрипт:

 // ==UserScript== // @name Block Opensearch XML specs // @namespace * // @version 0.3 // @description Block opensearch xml links // @match * // @copyright 2012+, Christian Huang // ==/UserScript== var i; var val; var len; var opensearches; opensearches = document.getElementsByTagName('link'); len = opensearches.length; for (i = 0; i < len;i++) { val = opensearches[i].type; if ( val == "application/opensearchdescription+xml") { opensearches[i].parentNode.removeChild(opensearches[i]); } } 

Вот несколько хакерский обходной путь, который отлично работает для меня. Просто переименуйте псевдоним поиска в нечто загадочное, наприме𠫧 $%! / () & /» . Пока поисковая система все еще там, вы не увидите ее снова, никогда. Довольно раздражает, если вы не можете google для «jenkins», потому что хром заставляет вас искать в jenkins.

Если я понимаю, что вы описываете правильно, то это вовсе не веб-сайты. Скорее, сам Chrome идентифицирует поля поиска на веб-сайтах, а затем сам добавляет их в список параметров поиска в omnibar.

A1: Да, это поведение по умолчанию, но это не сайты, добавляющие себя, это Chrome, добавляющий сайты.

A2: Я не считаю, что вы можете отключить это поведение, однако вы можете удалить поисковые системы, перейдя в меню инструментов -> Параметры -> Управление поисковыми системами; Они появятся в разделе «Другие поисковые системы». Возможно, вы сможете указать, что его нельзя добавлять повторно, когда вы его удаляете, я не уверен – мне нравится эта функция, поэтому я не буду пытаться их удалить.

Один обходной путь, который я нашел для этого, – это приобрести привычку начинать все мои поиски с пробела. Если вы ・Splunk median (где обозначает символ пробела), Chrome выполнит поиск Google по Splunk median .

<- Фон ->

У меня есть альтернативная, менее навязчивая идея для вас здесь (по крайней мере, если вы используете рекламный блок, так как многие из нас для нашего собственного здравомыслия / безопасности). Мне нравится использовать существующие расширения / скрипты как можно больше, чтобы избежать раздувания целого расширения только для одной функции (наихудший сценарий), поэтому это решение работает по этому принципу.

Adblock и его варианты / преемники (uBlock – это мое оружие выбора), имеют возможность блокировать элементы веб-страницы, включая элементы <link> , которые используются для автообнаружения OpenSearch Descriptions (OSD), XML-файлов, содержащих информацию Что позволяет автоматически добавлять поисковые системы и вызывает у нас эти головные боли. Я говорю «разрешает», потому что это вряд ли является обязательным, так как, насколько показали мои исследования, Firefox просто читает эту информацию и делает ее доступной для легкого добавления в раскрывающемся списке «Поисковые системы», вместо того, чтобы спокойно добавлять ее так, как это делает Chrome.

Использование функции описано в спецификациях Opensearch в нескольких местах:

http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_RSS.2FAtom (игнорируйте конкретный элемент этого раздела для наших целей, поскольку это просто пример его использования)


<- Решение ->

Поскольку он указывает, что OpenSearch Descriptions (OSD) имеют уникальный тип, мы можем отфильтровать их со следующим правилом AdblockPlus / uBlock:

##link[type="application/opensearchdescription+xml"]

Я проверил это, и правило показывает правильное совпадение на моих тестовых сайтах (filehippo.com и т. Д.), И поисковые системы больше не добавляются автоматически, поэтому я считаю, что это полное решение.


Быстрая заметка об истории, которую я нашел за этим: инженеры Chromium несколько раз отмечали этот «WontFix» несколько раз (опция / флажок power-user disable option / flag был запрошен несколько раз), заявив, что это считается нишевым вопросом, поскольку Функция «в целом полезна», их позиция заключается в том, что проблемы с нишей должны решаться с помощью расширений или сторонних скриптов, а не от разработчиков, добавляющих бесчисленные флаги и т. П., Чтобы удовлетворить все прихоти, поэтому в основном то, что мы делаем здесь, – это просто В соответствии с их предпочтениями и сохраняет его красивым и управляемым.

Удачи! Если кто-нибудь еще попробует это, дайте нам знать, как это работает!

Вы можете избежать использования или создания расширений и сделать это самостоятельно в консоли JavaScript браузера. Просто перейдите к chrome: // settings / searchEngines и нажмите F12, чтобы открыть панель Inspect. Вставьте это в консоль и нажмите Enter:

 Array.prototype.forEach.call(document.querySelectorAll('#other-search-engine-list .row-delete-button'), function(el) { el.click(this); }) 

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

Подход querySelector , похоже, больше не работает с новым интерфейсом материалов.

Следующие работали для меня:

 settings .SearchEnginesBrowserProxyImpl .prototype .getSearchEnginesList() .then(function (val) { val.others.forEach(function (engine) { settings .SearchEnginesBrowserProxyImpl .prototype .removeSearchEngine(engine.modelIndex); }); }); 
  • Что произойдет, когда я накрою ссылку в Chrome?
  • Удалите записи автозаполнения поля в Google Chrome.
  • Могу ли я изменить Google Chrome, чтобы предсказать мой поиск, и мгновенно посетить первый результат?
  • Chrome не запускается в Windows 8, появляется сообщение об ошибке «Класс не зарегистрирован»,
  • Google Chrome, прикрепленный к панели задач Windows 7, не открывается под прикрепленным значком
  • Chrome 33 показывает уродливые, блочные, пиксельные шрифты в Linux
  • Как я могу учить хронику для поиска в Google Картах?
  • Где Google Chrome для Linux хранит пользовательские данные?
  • Как заставить браузер искать Google на английском языке?
  • Как мне создать резервные копии своих букмарклетов?
  • Заставить Chrome открывать новые страницы в новом окне, а не вкладке? (При открытии из программы)
  • Можно ли настраивать значки на панели задач? Если да, то как?
  • Давайте будем гением компьютера.