Google Chrome otomatik olarak web sitelerini arama motorları listeme ekliyor mu?


121

Belirli web sitelerinin (örneğin Stack Exchange siteleri, Dell, vb.) Google Chrome'daki arama motorlarıma listeme otomatik olarak eklendiğini fark ettim.

Hatta girişlerine bir klavye kısayolu bile ekliyorlar. İşte bazı örnekler:

  • Dell: Klavye -> Dell.com
  • Yığın Exchange Web ustaları: Klavye -> webmasters.stackexchange.com
  • Reuters: Klavye -> reuters.com

S1: Bu Chrome'daki varsayılan davranış mı? (web sitelerinin kendilerini arama motorları listesine eklemelerine izin vermek için?)

S2: Bu davranışı Chrome'da devre dışı bırakmak mümkün mü?

Not: Windows 7 64'te Chrome'un en yeni sürümünü kullanıyorum: 11.0.696.57 ve yalnızca bir uzantı yüklü: Google URL kısaltıcı.


33
@ Sathya, Neden? Bunu devre dışı bırakma esnekliğine sahip olmak istiyorum. Sorunuz neden böyle bir şeyi devre dışı bıraksam : arama motorlarını düzenleme arayüzü pek iyi değil ve liste büyüdükçe, hangi arama motorlarını el ile eklediğimi ve hangilerinin otomatik olarak eklendiğini söylemek zor. Ayrıca büyük bir listede belirli bir girişi bulmak daha zordur.
Amelio Vazquez-Reina,

16
@Sathya - Pek çok neden: * Kolaylık: Bazen bir site hakkında arama yapmaktansa, bir site hakkında arama yapmak istersiniz. * Tutarlılık: Rastgele ve sessizce yeni "arama motorları" eklemek çok amaçlı adres kutusundaki beklenmeyen davranışlara neden olur. * Gizlilik: Chrome, yeni "arama motorları" eklemeye karar verdiğinde sizi bilgilendirmez ve tarama geçmişinizi temizlediğinizde kaybolmazlar. * Genel nezaket: Bu "özelliğin" etkinleştirilip etkinleştirilmeyeceğini veya en azından Chrome bir site eklemeye karar verdiğinde karar vermeyi seçtiğimden haberdar olmayı seçip seçemem gerekir mi?
fenomen

1
Tarayıcımın hangi arama motorlarını bilmesi gerektiğine kendime karar vermeye layık değilim.
Anders Lindén

Yanıtlar:


34

@ 10basetom kodu ve @shthed'den ilham alan sayesinde, bunu yapan özel arama motorları ekleme Chrome eklentisini yayınladım.

Kaynak kodunu burada bulabilirsiniz .

Ne düşündüğü söyle!


1
@ O'Rooney Teşekkürler! Bazı sitelerin zaman zaman uzantı tarafından kaydığını görüyorum, ancak bir ayda birkaç arama motorunu temizlemek neredeyse tamamen haftalık bir "temizleme" yapmak zorunda kalmaktan çok daha iyi ... Şerefe!
Greg Sadetsky

4
Aslında artık çalışmıyor: bir çok özel arama motoru hala ekleniyor.
onnodb

1
@onnodb not için teşekkürler, ne yazık ki uzantıyı güncellemek için yeterli zamanım olmadı.
Greg Sadetsky

1
@ onnodb, Greg, (ya da ilgilenen herhangi biri) bu çatalı dener misiniz? Çıkış yap, sonra .../srcda paketlenmemiş bir uzantı olarak yükle . Nasıl gittiğini bana bildirin. Teşekkürler!
cxw

3
Çok sayıda katılımcıdan gelen çabalar sayesinde, uzantının çok daha gelişmiş bir algılama / engelleme algoritmasıyla güncellendiğine dair küçük not! Daha önce işe yaramadıysa, bir yıl önce verin. Şerefe
Greg Sadetsky

61

Bu beni kesinlikle delirtiyordu, bu yüzden bu konuda hackish ama etkili bir çözüm buldum.

Chrome, arama motorlarını basit bir sqlite3 veritabanında saklar. Chrome, veritabanı ekleme ifadesinin yoksayılmasına neden olan arama motorunu eklemeye gittiğinde bir tetikleyici oluşturabileceğinizi öğrendim.
Arama motorlarının hala hafızada tutulduğunu, bu nedenle tarayıcı yeniden başlatılıncaya kadar listede görünmeye devam edeceklerini unutmayın . Ancak, onları her zaman temizlemeniz gerekmeyecek ve bu nedenle kendi arama motorlarınızı eklemek istiyorsanız, onları yanlışlıkla silmekten endişelenmenize gerek kalmayacak (evet, elle arama motorları eklemek yine de işe yarayacak).

İlk önce Web datadosyayı bulmalısınız .

  • 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 Dataveya~/.config/chromium/Default/Web Data

Sonra bir sqlite3 editörü ile açın.

Chrome bu noktada kapatılmalıdır.

Resmi sqlite web sitesi, çeşitli işletim sistemleri için önceden derlenmiş bir komut satırı yardımcı programını içeren bir indirme sayfasına sahiptir. Her ne kadar sqlite3 veritabanlarıyla çalışabilecek herhangi bir editör çalışacak olsa da.

Komut satırı yardımcı programı için aşağıdaki gibi bir komut kullanın (dosya adındaki boşluktan kaçmayı veya alıntı yapmayı unutmayın):

sqlite3 /path/to/Web\ Data

Tetiği ekle.

TRIGGER no_auto_keywords OLUŞTURMADAN ÖNCE anahtar kelimelere SIRTMADAN ÖNCE (NEW.originating_url NULL VE NEW.originating_url! = '') BEGIN SELECT RAISE (IGNORE); SON;

Sen bittin. Düzenleyiciyi kapatın ve chrome yedeklemeye başlayın.


Çalışma şekli keywords, chrome , tabloya otomatik olarak bir arama motoru eklemeye başladığında , chrome, originating_urlalanı geldiği web sitesine ayarlar . Tetikleyici temelde boş olmayan bir originating_urlalana sahip ekler arar ve RAISE(IGNORE)bu ifadenin sessizce atlanmasına neden olan sorunlar çıkarır.
El ile eklenmiş arama motorlarında bir yoktur originating_urlve bu nedenle tetikleyici eklenmelerini sağlar.


2
Birkaç editör denedikten sonra SQLiteStudio favorim. Hiçbir şekilde bu ürünle ilgili değilim. Sadece bir arama yaptıktan sonra bulduğum faydalı bir araç.
mateuscb

1
Bu harika ve işe yarıyor. Bununla birlikte, Chrome benim için hala veritabanında değil, "Veri Yedeklemesini Senkronize Et" adlı başka bir klasörde arama motorları ekledi. Windows / Linux'ta bu klasör için yazma izinlerini devre dışı bırakın.
Martin Hansen

Bu, artık en azından Chrome v47beta'da görünmüyor. Chrome'u yeniden başlattıktan sonra, otomatik olarak eklenen arama motoru hala listede, ancak anahtar kelimeyi yazmak artık onu tetiklemiyor.
Kasım’da

Bilginize: 1 / ilk önce bu dosyanın bir kopyasını almanız halinde :) 2 / Mac 10.11.4'te (El Capitan) Dosyayı / veritabanını sqlitebrowser.app ( "Error: unable to open database "~/Library/Application Support/Google/Chrome/Default/Web Data": unable to open database file) ile açamadım . 3 / CREATE TRIGGERChrome açıkken komutu çalıştırmayı denerseniz , Error: database is lockedönce Chrome'dan çıkın. 4 / bir kez Chrome kapandı, bu başarıyla veritabanı açıldı: /Volumes/Macintosh\ HD/Applications/sqlite3 ./Web\ Data( Terminalbelirtilen dizinde iken) HTH
sming

ID> 2 olan anahtar kelimelerden silmeyi denedim; ve google onları tekrar sunucudan senkronize eder. Sanırım binlerce arama motorunu yükledikten sonra çok geç oldu.
Qi Fan,

34

Bunu yapmanın iki yolu vardır:

  1. Bu kullanıcı klibini Tamper Monkey'e ekle :

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
    if (elOpenSearch) elOpenSearch.remove();
    
  2. Düzenli bir Tamper Monkey kullanıcısı değilseniz ve yalnızca bu amaç için Tamper Monkey uzantısını yüklemek için 15-20 MB RAM harcamak istemiyorsanız, o zaman herhangi bir bellek tüketmeyen kendi süper hafif uzantınızı yuvarlayabilirsiniz. . Talimatlar aşağıda verilmiştir.

OpenSearch <link>etiketini kaldırmak ve Chrome'un otomatik olarak arama motorlarını eklemesini önlemek için kendi uzantınızı nasıl oluşturabilirsiniz :

  1. Uzantı dosyalarını koyacağınız bir klasör oluşturun.

  2. Bu klasörün içinde adında iki metin dosyaları oluşturmak manifest.jsonve content.jsaşağıda verilen kodu içeren.

    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'da, adresine gidin chrome://extensions/(bunu URL çubuğuna girin).

  4. Geliştirici Modunu Etkinleştir.

  5. 'Paketlenmemiş uzantı yükle' seçeneğini tıklayın, 1. adımda oluşturduğunuz klasörü seçin ve 'Tamam'ı tıklayın.

Tebrikler! Şimdi Google Chrome'un :-) kullanımı biraz daha sinir bozucu olmalı.

Sınırlama: Bu çözüm% 100 güvenilir değildir. Bir arama parametresi içeren bir URL’ye giderseniz (örneğin, https://cdnjs.com/#q=fastclick ), nadir durumlarda özel bir arama motoru eklenmeye devam eder. Bunun nedeni, Chrome <link>, usercript veya uzantı DOM'dan kaldırma şansına sahip olmadan önce OpenSearch etiketini ayrıştırabilmesidir .


2
Kimsenin bunu mağazanın resmi bir uzantısı olarak yayınlamadığına şaşırdım, popüler gibi görünüyor. İdeal olarak bir uzantıyı arama motoru eklemeden önce sormam veya adres çubuğundaki RSS beslemeleri gibi eklememe izin veren bir simge istiyorum.
ryanmonk

7
Harika kod için teşekkürler ve ilham için teşekkürler! Ben sadece bunu yapan bir Google Chrome Uzantısı yayınladım. Burada bulabilirsiniz . Kaynak kodu burada . Ne düşündüğü söyle! :-)
Greg Sadetsky

@GregSadetsky Bunu bir cevap olarak gönderin, bunun için oy verebiliriz :)
O'Rooney

24

2
Bu cevabı seviyorum. Bu basit ama bilgilendirici
nXqd

8
Ancak, diğer cevapların açıkladığı gibi, onu etkisiz hale
Enrico

6
“Evet, bu tasarım gereğidir.” Kullanıcıları konuya giriş yapmadan bir sisteme otomatik olarak şeyler eklemek, kötü ve yanlış bir tasarımdır. Kötü niyetli web siteleri bundan kolayca yararlanabilir. “Hayır, bunu devre dışı bırakmanın yolu yok.” Açıkçası, yazılım olduğunda, her zaman bir yol vardır. Tembel olmak ve olmadığını söylemek bir çözüm değil. Bu cevap kaldırılmalı ve yazar uyarılmalıdır.
Alex Summers

Özel arama motorum önbellek temizledikten sonra kayboldu. Saatlerce site açtım ancak bu motorlar geri dönmedi. Onları nasıl geri alacağınızı biliyor musunuz? (Onları el ile çok fazla eklemek istemiyorum)
Mithril

bu yanlış cevap susturuldu. Düzeltilmesi için silinmemesi veya düzeltilmemesi gerekir mi?
Santropedro

10

İşte benim için gayet iyi çalışan bir parça hack geçici çözüm. Arama takma adını "§ $%! / () & /" Gibi şifreli bir şey olarak yeniden adlandırın . Arama motoru hala oradayken, bir daha hiç görmeyeceksiniz. Krom jenkins içinde aramaya zorlar çünkü "jenkins" için google gidemiyorsanız oldukça can sıkıcı.


Cidden - çılgın sinir bozucu. Bahşiş için teşekkürler.
TJ Biddle

2
Bunu bana yapıyor jenkins, jirave confluence- Bu üç ile ilgili hiçbir şey için adres çubuğumdan genel bir arama başlatamamam beni kesinlikle delirtiyor. Bu, şu ana kadar gördüğüm en iyi ve tek çalışan geçici çözüm. Şerefe.
Matt Clark

1
@MattClark jiratam olarak! Jira hakkında arama yapmak istiyorum, içinde değil!
ErikE

Senin durumunda nasıl davranıyor? Benim için, sitedeki aramayı tetiklemek için anahtar kelimesini omnibar a Tab tuşuna yazmam gerekiyor . Sonra site arama içine değişir ve arama dizesini yazmaya devam edebilirim. Yalnızca anahtar kelimeyi veya anahtar kelimeyi içeren bir dize aramak istersem, anahtar kelimeyi, Boşluğu , arama dizesinin kalanını ve Enter tuşunu yazıp varsayılan arama motorunu kullanarak arama yapıyorum. Bu yüzden birbirleriyle karışmaz. Varsayılan arama motorunu ve sitede arama yapmak için Sekmeyi kullanarak arama yapmak için anahtar kelimeden sonraki Boşluğu kullanın .
Dawid Ferenczy Rogožan

@DawidFerenczy: Geri kalanımız için böyle değil. Bir boşluk hala o arama motorunu kullanır. Ben yazın git, sonra bir boşluk ve anında (ı defalarca kaldırdık) Git arama motorunu kullanmaya değiştirir.
Gerrat

9

Bu basit usercript'i kullanmayı deneyin:

// ==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]);
    }
}

1
bu betiği nereye eklerim? veya yürütmek?
mateuscb

2
@mateuscb Buradan alabilirsiniz . Sonra betiği chrome, chrome: // extensions / dizinindeki uzantı ayarları sayfasına bırakın.
Victor Häggqvist

Bu. Dır-dir. Muhteşem. Kukla yaratmam gerekiyordu manifest.json( bu SO cevabına göre ve dev modu aracılığıyla (paketlenmemiş bir uzantı olarak)
kurdum

1
Veya Tamper Monkey'de kullanabilirsiniz. Web sitelerinde değişiklik yapmaya alışkınsanız, TM mutlaka sahip olmanız gereken bir addon olmalıdır.
JasonXA

Bu tek astarı da kullanabilirsiniz: document.querySelector('[type="application/opensearchdescription+xml"]').remove();(aşağıdaki cevabımı inceleyin).
Kasım’da

9

Çok sayıda arama motorunu hızlı bir şekilde kaldırmak için, chrome: // settings / searchEngines'e gidin, Javascript konsoluna girmek için Ctrl-Shift-J (OSX'te Opt-Cmd-J) tuşlarına basın ve şunu yapıştırın:

settings
    .SearchEnginesBrowserProxyImpl
    .prototype
    .getSearchEnginesList()
    .then(function (val) {
        val.others.sort(function (a, b) { return b.modelIndex - a.modelIndex; });
        val.others.forEach(function (engine) {
            settings
                .SearchEnginesBrowserProxyImpl
                .prototype
                .removeSearchEngine(engine.modelIndex);
        });
    });

Her şeyi temizlemek için bunu birkaç kez yapıştırmanız ve çalıştırmanız gerekebilir.


Sahip olduğum 100+ girişi kaldırmak için bunu yaklaşık 10 kez dev-konsol'a kopyalamak / yapıştırmak zorunda kaldım. Keşke nasıl tek tıklamalı bir kitapçık haline getireceğimi bilsem.
jiggunjer

1
Listeyi ilk önce tersine sıralamak için değiştirdim (modelIndex'e dayanarak), bir giriş silindiğinde değeri sıfırlandığından (bu nedenle yukarıdan aşağıya çalışırken genellikle yalnızca geçerli listenin yaklaşık yarısını silmeye başlarsınız). Aşağıdan yukarı doğru çalışırken bu sorun oluşmaz.
Alkol

İlk önce bunu bir koşuda yapabileceğini gördüm! Kudos.
bnieland

Windows 10, sürüm 1709, Chrome Sürüm 64.0.3282.186 (Resmi Yapı) (64-bit) yüklememde çalıştı.
JosephHarriott,

7

Neyi doğru tanımladığınızı anlıyorsam, bu web siteleri hiçbir şey yapmıyor. Aksine, Chrome web sitelerinde arama kutularını kendisi belirler ve sonra bunları omnibar'daki arama seçenekleri listesine ekler.

A1: Evet, bu varsayılan davranış, ancak kendilerini ekleyen web siteleri değil, web sitelerini de Chrome'a ​​ekliyor.

A2: Bu davranışı devre dışı bırakabileceğinizi sanmıyorum, ancak araç menüsüne giderek arama motorlarını kaldırabilirsiniz -> Seçenekler -> Arama Motorlarını Yönet; "Diğer Arama Motorları" altında görünecekler. Kaldırdığınızda birinin eklenmemesi gerektiğini belirtebilirsiniz, emin değilim - Bu özelliği beğendim, bu yüzden bunları kaldırmayı denemeyeceğim.


Teşekkürler @Kromey, Bu iyi bir nokta. Yorumunuzu yansıtacak şekilde soruyu yeni güncelledim.
Amelio Vazquez-Reina,

1
Bu cevap yanlıştır, web siteleri, Chrome'un web sitelerinin arama motorunu tarayıcınızın araştırabileceği arama motorları listesine eklemelerini sağlamak için OpenSearch açıklama belgesi adı verilen şeyi kullandıkça kendilerini etkili bir şekilde Chrome'a ekler.
Marcel

@Marcel OpenSearch yalnızca sitelerin arama özelliklerini tanımlamasına izin verir . Yine de tarayıcının buna göre davranmasını gerektirir. Bu nedenle bu yanlış değil, cevabımda "... [web sitelerinde arama kutularını tanımla" "için kullanılan teknik özellikleri dahil etmedim, aksi halde basit bir meseleyi karmaşıklaştıracağını düşündüm. - Tarayıcının bir arama kutusunu nasıl bulduğuna dair kesin mekanizma, yalnızca eklenmesini isteyen web yöneticileriyle olan ortalama kullanıcıyla ilgili değildir.
Kromey

7

Bunun için bulduğum bir geçici çözüm, tüm aramalarıma bir boşlukla başlatma alışkanlığı edinmektir. Eğer yazarsanız ・Splunk median( boşluk karakterini gösterir), Chrome bir Google araması yapar Splunk median.


2
Aramayı bir soru işaretiyle (?) Başlatmak, varsayılan arama motorunuzu da kullanır.
Ari

Güzel! Bunu uzaydan daha çok seviyorum.
Jun-Dai Bates-Kobashigawa

1
Benim için işe yaramadı. Chrome 39, Win 7'de, boşluk kelimesini yazmak arama arayüzünü getirmedi. Ancak, çözümünüz adlandırmada başka bir yerde yararlı oldu. Tanımlanmış aramalarımın otomatik aramaların üstünde görünmesini istiyorsam, adın önünde bir boşluk ve presto. Tüm otomatik arama motorları aşağıya iner ve artık bunları yönetmek / kaldırmak daha kolaydır.
JasonXA

bu davranışı elde etmek için sadece ctrl + k tuşlarına basın.
jiggunjer 7:17

6

<- Arka Plan ->

Burada sizin için alternatif, daha az müdahaleci bir fikrim var (en azından bir reklam engelleyici kullanıyorsanız, çoğumuz kendi aklımız / güvenliğimiz için). Sadece bir özellik için bütün bir uzantı kabarmasını önlemek için mümkün olan mevcut uzantıları / komut dosyalarını kullanmayı seviyorum (en kötü senaryo), bu nedenle bu çözüm bu ilkeye göre çalışır.

Adblock ve varyantları / halefleri (uBlock benim seçimim silahımdır), <link>otomatik olarak izin veren bilgileri içeren XML dosyalarını içeren OpenSearch Açıklamalarını (OSD'ler) otomatik olarak bulmak için kullanılan öğeler de dahil olmak üzere web sayfası öğelerini engelleme olanağına sahiptir. arama motorları ekler ve bize bu baş ağrılarına neden olur. "İzin veriyor" diyorum, çünkü araştırmamın gösterdiği kadarıyla zorunlu değil, Firefox bu bilgiyi okuyor ve Chrome gibi sessizce otomatik olarak eklemek yerine, Arama Motorları açılır kutusuna kolayca eklenebilmesini sağlıyor.

Özelliğin kullanımı Opensearch şartnamelerinde birden fazla yerde açıklanmıştır:

http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_RSS.2FAtom (bu bölümün belirli kullanımına yalnızca kullanımdaki bir örneği olarak göz ardı edin)


<- Çözüm ->

OpenSearch Açıklamaları'nın (OSD'ler) benzersiz bir türü olduğunu belirttiği için, bunları aşağıdaki AdblockPlus / uBlock kuralına göre filtreleyebiliriz:

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

Bunu test ettim ve kural test sitelerimde (filehippo.com vb.) Doğru eşleşmeyi gösteriyor ve arama motorları artık otomatik olarak eklenmiyor, bu yüzden bunun tam bir çözüm olduğuna inanıyorum.


Bunun arkasında bulduğum tarihçeye dair kısa bir not: Chromium'un mühendisleri, bu "WontFix" i yıllar içinde birkaç kez (güç kullanıcısı devre dışı bırakma seçeneği / bayrağı istendi) belirterek, bunun bir niş sorunu olarak kabul edildiğini belirttiler. özelliği "genel olarak yararlıdır", duruşları, niş sorunlarının sayısız bayrak ekleyerek ve tüm kaprislere hitap etmek gibi şeyleri kullanmak yerine uzantıları veya 3. taraf komut dosyaları ile çözülmesi gerektiğidir. tercihlerine uygun ve güzel ve yönetilebilir tutar.

İyi şanslar! Bunu başkası denerse, nasıl çalıştığını bize bildirin!


1
Bu benim için işe yaramadı ( cdnjs.com'da arama yapmayı deneyin ). % 100 güvenilir bir çözüm olmadığı sonucuna geldim :(
thdoan

Bu benim için de işe yaramıyor - 4inkjets.com'da arama yaparsam arama motoru olarak eklenir (garip bir application/opensearchdescription+xmlşekilde sayfada bir bağlantı bulamıyorum .)
Ivan Kozik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.