5

Ich habe eine lokale Suchmaschine, die von einem elasticsearch und einer thin nodejs-API für die Suche unterstützt wird. Ich möchte in der Lage sein, diese Dokumente von Google Chrome (Builds von Google, nicht von Chromium) direkt zu suchen. In diesem Anwendungsfall werde ich mit dieser Suchmaschine chrome ONLY verwenden, also möchte ich nicht OmniBox Keyword Search API verwenden. Ich möchte das gleiche Verhalten wie ich bei der Auswahl der Standard-Suchmaschine in Chrome. Was istVorschlags-URL für benutzerdefinierte Suchmaschine in Chrome hinzufügen

  1. Starten Sie die Eingabe in der OmniBox und es zeigt eine Liste von Vorschlägen.
  2. Hit eingeben und es braucht, um die Suchergebnisseite

ich die # 2 Arbeits bekam durch eine neue Suchmaschine unter Einstellungen hinzugefügt und bieten die URL der Suche api. Ich kann nicht # 1 arbeiten.

Die beiden Urls von meinem Server ausgesetzt sind:

  1. http://localhost:3000/complete?query=my (dies eine Liste der Suchvorschläge gibt, die ich zeigen will, während in der Omnibox eingeben).

  2. http://localhost:3000/results?query=my+sample+query (diese gibt die tatsächlichen Suchergebnisse als eine Web-Seite, das funktioniert)

Dinge, die ich versucht habe:

  1. Added Suchmaschine window.externals. AddSearchProvider mit OpenSearchDescription.xml-Verknüpfung. Das XML hat auch Vorschläge URL.

  2. versucht einen Hintergrund Verlängerung mit Omnibox zu schreiben, aber es mich ohne ein Schlüsselwort

ich durch Chromium gesucht und gefunden dieses JSON-Datei

https://code.google.com/p/chromium/codesearch#chromium/src/components/search_engines/prepopulated_engines.json&q=prepopulated&sq=package:chromium&l=1

aber suchen nicht erlaubt Ich weiß nicht, wie ich es verwenden kann (oder ob es sogar möglich ist, dies in offiziellen Builds von Chrome zu tun).

Antwort

0

Es gibt einen Setting Overrides Mechanismus für Chrome-Erweiterungen, die nicht allgemein bekannt ist, das erreichen können, was Sie wollen, aber:

  • Zumindest nach der Dokumentation, es funktioniert nur unter Windows .
  • Sie können die Erweiterung nur veröffentlichen, wenn Sie die Site in den Webmaster-Tools überprüfen können. Ansonsten bleiben Sie mit den entpackten Installationen stecken.
+0

Danke! Ich weiß nicht, warum sie es nicht auf Mac haben können. – suparngp

+0

Wenn Sie reine Spekulation haben wollen: Sie wurde zu der Zeit geschrieben, als Hackerangriffe auf Windows-Malware stattfanden (und Secure Preferences eingeführt wurden), also war dies ein Workaround für legitime Anwendungsfälle. – Xan

+0

Ahaa! Dies scheint wahrscheinlich. Siehe meine Antwort für eine Lösung. – suparngp

3

Ich habe endlich die Lösung gefunden.

Der Dokumentverweis opensearch.xml kann als Link im Kopfbereich der HTML-Seite verwendet werden. Es enthält zwei URL-Schemata, eines für Suchergebnisse und andere für Vorschläge.Die Details finden Sie hier: Opensearch Document Specs.

Sobald ich meine index.html aktualisiert und die Seite in Chrome geöffnet habe, hat Chrome automatisch eine neue Suchmaschine hinzugefügt. Es wurde nicht angezeigt, dass es eine Vorschlags-URL unter Einstellungen> Suchmaschinen verwalten gibt.

Als nächstes wählte ich meine Suchmaschine als Standard-Suchmaschine, indem Sie auf Als Standard und fertig! Jetzt kann ich alle Suchvorschläge in der Omnibox sehen, ohne ein Schlüsselwort zu verwenden.

+0

Das ist ein wirklich nützlicher Fund. – Xan

+0

Ich habe Charles Proxy ausgeführt und festgestellt, dass es immer einen API-Aufruf gibt, wenn ich etwas eintippe, also gibt es eine Vorschlags-URL-Einstellung für jede Suchmaschine irgendwo. Ich habe diese spezielle Lösung zufällig gefunden, als ich überprüft habe, wie DuckDuckGo es macht, wenn es heißt: Klicke hier, um DDG auf Chrome zu installieren. Sie rufen window.external.AddSearchProvider auf ("Link zu opensearch.xml für ddg). Und fertig. Ich habe diese XML-Datei als Referenz, bearbeitet sie mit meinen Server-Informationen und es hat funktioniert. – suparngp