Added an example of the search API (#372)

* Added an example of the search API

* Fix manifest.json
This commit is contained in:
wbamberg
2018-10-12 11:22:27 -07:00
committed by GitHub
parent fc73e0088f
commit 04ab5ab0e4
7 changed files with 75 additions and 0 deletions

20
menu-search/README.md Normal file
View File

@@ -0,0 +1,20 @@
# menu-search
A demo of the [search API](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/search/).
## What it does
This add-on retrieves the list of installed search engines, and adds a context menu item for each one, displayed in the "selection" context.
Each context menu item searches for the selected text using the corresponding search engine.
This enables a user to:
* select some text to search for
* activate the context menu
* choose which search engine to use for the search.
## What it shows
* How to retrieve the set of search engines.
* How to search using a specific search engine.

26
menu-search/background.js Normal file
View File

@@ -0,0 +1,26 @@
/*
Create a menu item for each installed search engine.
The ID and title are both set to the search engine's name.
*/
function createMenuItem(engines) {
for (let engine of engines) {
browser.menus.create({
id: engine.name,
title: engine.name,
contexts: ["selection"]
});
}
}
browser.search.get().then(createMenuItem);
/*
Search using the search engine whose name matches the
menu item's ID.
*/
browser.menus.onClicked.addListener((info, tab) => {
browser.search.search({
query: info.selectionText,
engine: info.menuItemId
});
});

View File

@@ -0,0 +1 @@
The "page-32.png" and "page-48.png" icons are taken from the miu iconset created by Linh Pham Thi Dieu, and are used under the terms of its license: http://linhpham.me/miu/.

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

28
menu-search/manifest.json Normal file
View File

@@ -0,0 +1,28 @@
{
"manifest_version": 2,
"name": "Search using...",
"description": "Search ",
"version": "1.0",
"applications": {
"gecko": {
"strict_min_version": "63.0b14"
}
},
"background": {
"scripts": ["background.js"]
},
"permissions": [
"menus",
"search"
],
"icons": {
"16": "icons/page-16.png",
"32": "icons/page-32.png",
"48": "icons/page-48.png"
}
}