火狐浏览器扩展

给 Firefox 加点机能。定制 Firefox,为 Firefox 增添功能,让上网变得更快、更安全,乐趣十足。

开发者文档

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions

https://extensionworkshop.com/documentation/develop/

使用官方示例轻松入门

官方提供了许多例子,可以克隆下来,自己写的扩展也可以放到这个目录里,好管理

https://github.com/mdn/webextensions-examples

克隆项目并使用自己常用的开发工具打开

git clone git@github.com:mdn/webextensions-examples.git

image-20200725104116813

配置浏览器加载插件

地址栏输入about:debugging,选择This Firefox,从目录中加载插件,选择目录下的manifest.json

image-20200725104658047

刷新浏览器看见效果,body四周显示了5个像素的实心边框,这个是相对较为简单的示例。

image-20200725105253852

如果是content script 修改代码,刷新界面即可,如果是其他类型的扩展,需要点击reload进行重新加载。

另一种加载插件方式

使用 web-ext 参考链接 https://extensionworkshop.com/documentation/develop/getting-started-with-web-ext/

npm install --global web-ext
cd borderify
web-ext run

官方示例简介

如果对某些内容可进行搜索,比如对主题感兴趣,可搜索theme,有例子参考,相信可以更快更轻松的入门,写出属于您自己的扩展。

Name Description JavaScript APIs
annotate-page Displays a sidebar that lets you take notes on web pages. storage.local tabs.onActivated tabs.onUpdated tabs.query tabs.Tab windows.getCurrent windows.Window
apply-css Adds a page action to the toolbar. Click the button to apply a red border using injected CSS. Click the button again to remove the CSS. pageAction.getTitle pageAction.onClicked pageAction.setIcon pageAction.setTitle pageAction.show tabs.insertCSS tabs.onUpdated tabs.query tabs.removeCSS tabs.Tab
beastify Adds a browser action icon to the toolbar. Click the button to choose a beast. The active tab's body content is then replaced with a picture of the chosen beast. extension.getURL runtime.onMessage tabs.executeScript tabs.insertCSS tabs.query tabs.removeCSS tabs.sendMessage tabs.Tab
bookmark-it Adds a bookmark button to the toolbar. Click the button to toggle a bookmark for the current page. bookmarks.create bookmarks.onCreated bookmarks.onRemoved bookmarks.remove bookmarks.search browserAction.onClicked browserAction.setIcon browserAction.setTitle tabs.onActivated tabs.onUpdated tabs.query tabs.Tab windows.onFocusChanged
borderify Adds a solid red border to all webpages matching mozilla.org.
chill-out Show a page action after a period of inactivity. Show cat gifs when the page action is clicked. alarms.clearAll alarms.create alarms.onAlarm pageAction.hide pageAction.onClicked pageAction.show tabs.get tabs.onActivated tabs.onUpdated tabs.query tabs.update
commands Demonstrates using the commands API to set up a keyboard shortcut. The shortcut created is accessed using Ctrl+Shift+U (Command+Shift+U on a Mac). commands.getAll commands.onCommand commands.reset commands.update tabs.create
content-script-register Illustrates how an extension can register URL-matching content scripts at runtime. contentScripts.register runtime.onMessage runtime.sendMessage
context-menu-copy-link-with-types Add a context menu option to links to copy the link to the clipboard, as plain text and as a link in rich HTML. contextMenus.create contextMenus.onClicked tabs.executeScript
contextual-identities List, create, and remove contextual identities. contextualIdentities.query tabs.create tabs.query tabs.remove
cookie-bg-picker Allows the user to customize the background color and tiled pattern on sites the visit, and also saves their preferences via a cookie, reapplying them whenever they revisit a site they previously customized. cookies.get cookies.onChanged cookies.remove cookies.set extension.getURL runtime.onMessage tabs.onActivated tabs.onUpdated tabs.query tabs.Tab tabs.sendMessage
devtools-panels Demonstrates some of the devtools APIs. devtools.inspectedWindow devtools.panels runtime.getURL runtime.onMessage runtime.sendMessage tabs.executeScript
discogs-search Demonstrates adding a custom search engine with the chrome_settings_overrides key.
dynamic-theme Dynamic theme example alarms.create alarms.onAlarm theme.update
emoji-substitution Replaces words with emojis.
eslint-example Demonstrates how to configure an extension with eslint.
export-helpers Demonstrates how to use export helpers like cloneInto to share objects with page scripts. notifications.create runtime.onMessage runtime.sendMessage
favourite-colour An example options page, letting you store your favourite colour. browserAction.onClicked runtime.openOptionsPage storage.managed storage.sync
find-across-tabs Demonstration of the find API. browserAction.onClicked extension.getBackgroundPage find.find find.highlightResults runtime.getURL runtime.onMessage runtime.sendMessage tabs.create tabs.query tabs.Tab
firefox-code-search Demonstrates how to use the omnibox API. omnibox.onInputChanged omnibox.onInputEntered omnibox.setDefaultSuggestion tabs.create tabs.update
forget-it Demonstrates how to use the browsingData API. browserAction.onClicked browsingData.remove notifications.create storage.local
google-userinfo Demonstrates how to use the identity API. browserAction.onClicked identity.getRedirectURL identity.launchWebAuthFlow notifications.create
history-deleter History API demo: deletes history items for a given domain history.deleteUrl history.search pageAction.show tabs.onUpdated tabs.query
http-response Demonstrates how to rewrite HTTP responses using the webRequest.filterResponseData() API. webRequest.filterResponseData webRequest.onBeforeRequest
imagify Using a sidebar, illustrates the use of file picker and drag and drop. A content script replaces the current page content with the chosen image. extension.getURL runtime.onMessage tabs.executeScript tabs.query tabs.sendMessage
latest-download Shows the last downloaded item, and lets you open or delete it. downloads.erase downloads.getFileIcon downloads.open downloads.removeFile downloads.search
list-cookies This extensions list the cookies in the active tab. cookies.getAll tabs.query
menu-accesskey-visible Shows how to set up a single letter access key for a menu item. i18n.getMessage menus.update menus.create menus.onClicked
menu-demo Demonstrates adding and manipulating menu items using the menus API. i18n.getMessage menus.create menus.onClicked menus.remove menus.update runtime.lastError tabs.executeScript
menu-labelled-open Shows how an extension can listen for the display of a menu and then add, remove, or update its menu items. menus.create menus.onClicked menus.onShown menus.refresh menus.update tabs.update
menu-remove-element Shows how to detect the page element at the cursor position and remove that element, or a parent element, from the page. This example includes use of the polyfill, illustrating cross-browser extension development. menus.create menus.onClicked menus.getTargetElement pageAction.openPopup pageAction.show tabs.executeScript
menu-search Illustrates how to retrieve a list of search engines and issue a search request, using search engine details added to the context menu for selected text. search.search search.get menus.create menus.onClicked
mocha-client-tests This example shows two methods of testing an extension: running tests from within the extension, and running tests from the command line using Karma. runtime.onMessage runtime.sendMessage
native-messaging Example of native messaging, including a Python application and an extension which exchanges messages with it. browserAction.onClicked runtime.connectNative
navigation-stats Demonstration of the webNavigation API, showing basic stats about which pages you've visited. storage.local webNavigation.onCommitted webNavigation.onCompleted
notify-link-clicks-i18n Shows a localized notification when the user clicks on links. extension.getURL i18n.getMessage notifications.create runtime.onMessage runtime.sendMessage
open-my-page-button Adds a browser action icon to the toolbar. When the browser action is clicked, the add-on opens a page that was packaged with it. browserAction.onClicked tabs.create
page-to-extension-messaging Demonstrates how a web page and a content script can exchange messages. Visit https://mdn.github.io/webextensions-examples/content-script-page-script-messaging.html for the demo.
permissions Demonstrates optional permissions using the permissions API. browserAction.onClicked permissions.getAll permissions.remove permissions.request runtime.getURL tabs.create
private-browsing-theme Example dynamic theme: sets a dark theme for private windows. theme.reset theme.update windows.getAll windows.onCreated
proxy-blocker Uses the proxy API to block requests to hosts specified on a list. extension.getURL proxy.onRequest proxy.onError storage.local storage.onChanged
quicknote Allows the user to make quick notes by clicking a button and entering text into the resulting popup. The notes are saved in storage. storage.local
root-cert-stats Shows how to get details about a request's TLS connection. webRequest.getSecurityInfo
runtime-examples Demo of various runtime APIs. browserAction.onClicked notifications.create runtime.getManifest runtime.onInstalled runtime.reload
selection-to-clipboard Demonstrates how to write to the clipboard from a content script
session-state Demonstrates how to retrieve extension-defined state state from restored tabs. menus.create menus.onClicked sessions.getTabValue sessions.setTabValue tabs.insertCSS tabs.onCreated tabs.onUpdated tabs.query
store-collected-images Demonstrates how to use the idb-file-storage library to store and manipulate files in an extension. browserAction.onClicked contextMenus.create contextMenus.onClicked runtime.onMessage runtime.sendMessage tabs.create windows.create
stored-credentials Performs basic authentication by supplying stored credentials. storage.local webRequest.onAuthRequired webRequest.onCompleted webRequest.onErrorOccurred
tabs-tabs-tabs Demonstrates tab manipulation: opening, closing, moving, zooming tabs. browserAction.setBadgeBackgroundColor browserAction.setBadgeText tabs.create tabs.duplicate tabs.getZoom tabs.move tabs.onCreated tabs.onMoved tabs.onRemoved tabs.query tabs.reload tabs.remove tabs.setZoom tabs.Tab tabs.update
theme-integrated-sidebar A sidebar that integrates with the current theme. theme.getCurrent theme.onUpdated windows.getCurrent
theme-switcher An example of how to use the management API for themes. management.getAll management.setEnabled
themes A collection of themes illustrating:weta_fade: a basic theme employing a single image specified in theme_frame:.weta_fade_chrome: the weta_fade theme implemented with Chrome compatible manifest keys.weta_tiled: a theme using a tiled image.weta_mirror: a theme using multiple images and aligning those images in the header.animated: use of an animated PNG.
top-sites Demonstration of the topSites API. topSites.get
user-agent-rewriter Demonstrates using the webRequest API to rewrite the User-Agent HTTP header. extension.getBackgroundPage webRequest.onBeforeSendHeaders
user-script-register Illustrates how an extension can register URL-matching user scripts at runtime. userScripts.register runtime.onMessage runtime.sendMessage
webpack-modules Demonstrates how to use webpack to package npm modules in an extension. runtime.onMessage runtime.sendMessage
window-manipulator Demonstrates how to manipulate windows: opening, closing, resizing windows. windows.create windows.getAll windows.getCurrent windows.remove windows.update windows.Window
open-irc-links Demonstrates the use of protocol handlers.
原文地址:https://www.cnblogs.com/BlackSwanYucatan/p/13377197.html