5

Tôi có một công cụ tìm kiếm địa phương được hỗ trợ bởi một elasticsearch và một API nodejs mỏng để tìm kiếm. Tôi muốn có thể tìm kiếm các tài liệu đó từ Google Chrome (các bản dựng sẵn có từ Google chứ không phải Chromium) trực tiếp. Trong trường hợp sử dụng này, tôi sẽ sử dụng chrome CHỈ với công cụ tìm kiếm này, vì vậy tôi không muốn sử dụng API tìm kiếm từ khóa OmniBox. Tôi muốn các hành vi tương tự như tôi nhận được trong khi lựa chọn công cụ tìm kiếm mặc định trong chrome. Đó làThêm URL đề xuất cho công cụ tìm kiếm tùy chỉnh trong chrome

  1. Bắt đầu nhập vào OmniBox và nó hiển thị danh sách các đề xuất.
  2. Hit nhập và phải mất đến kết quả tìm kiếm trang

tôi đã làm việC# 2 bằng cách thêm một công cụ tìm kiếm mới trong cài đặt và cung cấp url api tìm kiếm. Tôi không thể làm việc số 1.

Hai url tiếp xúc bởi máy chủ của tôi là:

  1. http://localhost:3000/complete?query=my (này trả về một danh sách các gợi ý tìm kiếm mà tôi muốn hiển thị khi gõ trong Omnibox).

  2. http://localhost:3000/results?query=my+sample+query (này sẽ trả về kết quả tìm kiếm thực tế như là một trang web, điều này đang làm việc)

Những điều mà tôi đã cố gắng:

  1. Added công cụ tìm kiếm sử dụng window.externals. AddSearchProvider với liên kết OpenSearchDescription.xml. XML cũng có url đề xuất.

  2. Cố gắng viết một phần mở rộng nền với Omnibox nhưng nó không cho phép tôi để tìm kiếm mà không sử dụng một từ khóa

Tôi đã tìm kiếm thông qua Chromium và tìm thấy tệp JSON này

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

Nhưng Tôi không biết làm thế nào tôi có thể sử dụng nó (hoặc nếu nó thậm chí có thể làm điều này trong xây dựng chính thức của Chrome).

Trả lời

0

Có một cơ chế Setting Overrides cho Chrome Extensions, mà không được biết đến rộng rãi, có thể đạt được những gì bạn muốn, nhưng:

  • Ít nhất theo các tài liệu, nó chỉ hoạt động trên Windows .
  • Bạn sẽ không thể xuất bản tiện ích trừ khi bạn có thể xác minh trang web trong Công cụ quản trị trang web. Nếu không, bạn đang mắc kẹt với các cài đặt chưa được giải nén.
+0

Cảm ơn! Tôi không biết tại sao họ không thể có nó trên mac. – suparngp

+0

Nếu bạn muốn đầu cơ thuần túy: nó đã được viết vào thời điểm đàn áp phần mềm độc hại Windows đang xảy ra (và Tuỳ chọn An toàn đã được giới thiệu), vì vậy đây là giải pháp cho các trường hợp sử dụng hợp pháp. – Xan

+0

Ahaa! Điều này dường như có thể xảy ra. Xem câu trả lời của tôi cho một giải pháp. – suparngp

3

Cuối cùng tôi đã tìm ra giải pháp.

Tham chiếu tài liệu opensearch.xml có thể được sử dụng làm liên kết trong phần đầu của trang HTML. Nó chứa hai lược đồ URL, một lược đồ cho kết quả tìm kiếm và một cho các đề xuất.

Chi tiết có thể tìm thấy tại đây: Opensearch Document Specs.

Ngay sau khi tôi cập nhật index.html và mở trang trong Chrome, Chrome sẽ tự động thêm công cụ tìm kiếm mới. Nó không cho thấy có URL đề xuất trong số Cài đặt> Quản lý công cụ tìm kiếm.

Tiếp theo, tôi đã chọn công cụ làm công cụ tìm kiếm mặc định bằng cách nhấp vào Đặt làm mặc định và hoàn tất! Bây giờ tôi có thể xem tất cả đề xuất tìm kiếm trong thanh địa chỉ mà không sử dụng từ khóa.

+0

Đó là một tìm kiếm thực sự hữu ích – Xan

+0

Tôi chạy Charles Proxy và nhận thấy rằng có một cuộc gọi API mỗi khi tôi nhập một cái gì đó, do đó, có một thiết lập URL đề xuất cho mọi công cụ tìm kiếm ở đâu đó. Tôi đã tìm thấy giải pháp đặc biệt này một cách vô tình khi tôi kiểm tra trang web DuckDuckGo làm như thế nào khi nó nói Bấm vào đây để cài đặt DDG trên chrome. Họ gọi window.external.AddSearchProvider ("link to opensearch.xml for ddg) Và tôi đã nhận được tệp xml đó làm tài liệu tham khảo, chỉnh sửa nó với thông tin máy chủ của tôi và nó hoạt động. – suparngp

Các vấn đề liên quan