Chrome拡張機能のススメ

>100 Views

March 18, 21

スライド概要

Chrome拡張機能の入門の前段階、どういうものなのかを解説しています。

参考リンク:
・【Chrome extension】拡張機能を開発してみよう vol.1 - 拡張機能の種類と必要なファイル -|事務職たらこ|note https://note.com/taraco123/n/n22268575b385?magazine_key=mebcf1de3449b
・Chrome Extension の作り方 (その1: 3つの世界) - Qiita https://qiita.com/sakaimo/items/416f36db1aa982d8d00c

profile-image

名工大(NITech) CS niC参加 https://scrapbox.io/nitechCreate/

Docswellを使いましょう

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Chrome拡張機能 開発のススメ

2.

Chrome拡張機能とは Chromeの動作を 変えることができるもの

3.

例 • Share on Twitter • Weblioポップアップ 英和辞典 • uBlock Origin • uBlacklist • Autopagerize for Chrome • Pastebin.com • Video Speed Controller • FireShot • User-Agent Switcher for Chrome • URL Shortener for Amazon

4.

Share on Twitter

5.

Weblioポップアップ英和辞典

6.

開発 言語 JavaScript + HTML/CSS

7.

開発 言語 JavaScript + HTML/CSS → Webサイトと同じ

8.

できること Content: DOM(表示要素)を編集できる! Browser/Page actions: (後述) ボタンなどを押してできる / 特定ページ内の特定の要素 Background: ずっと動いてる Option: オプションのためのページ

9.

Browser/Page actions: 具体的には? タブ ブックマーク 履歴 クリップボード

10.

開発 ①はじめに – manifest.json { //必須 "manifest_version": 2, //manifestのバージョン(決められた値) "name": "extension", //拡張機能の名前 "version": "1.0", //拡張機能のバージョン(自分で付与して管理) //任意項目 "browser_action": { //browser actionの拡張機能を作る際の設定事項 "default_icon": { //アイコン "16": "icon16.png" //48×48,128×128もあると良い(Chromeストアなどに使われる) }, "default_popup": "popup.html" //アイコンクリックで表示するHTML } }

11.
[beta]
開発 ②例 – DOMの操作 manifest.json { "manifest_version": 2, "name": "いま表示されてる画面のDOMを操作する", "version": "1.0", "content_scripts": [ { "matches": ["http://example.com/"], "js": ["jquery-3.4.0.min.js", "content.js"] } ] } content.js $(function () { console.log("コンテントスクリプトだよ"); $("body").css("background-color", "orange"); });
12.

開発 ②例 – 背景色を変えるメニュー

13.

開発 ②例 – 背景色を変えるメニュー manifest.json { "manifest_version": 2, "name": "Event Pageの実験", "version": "1.0", "background": { "scripts": ["event.js"], "persistent": false }, "permissions": ["contextMenus", "activeTab"] }

14.
[beta]
開発 ②例 – 背景色を変えるメニュー event.js // 拡張機能がインストールされたときの処理 chrome.runtime.onInstalled.addListener(function () { // 親階層のメニューを生成 const parent_menu = chrome.contextMenus.create({ type: "normal", id: "parent", title: "背景色を変えるメニュー", }); //子階層のメニューを親(parent_menu)に追加 chrome.contextMenus.create({ id: "red", parentId: parent_menu, title: "赤色", }); chrome.contextMenus.create({ id: "blue", parentId: parent_menu, title: "青色", }); }); /** * メニューが選択されたときの処理 * 選択されたアイテムはこちらの関数の引数に入ってくる(今回は item) * menuItemIdでmenuのidが文字列で取得できる */ chrome.contextMenus.onClicked.addListener(function (item) { console.log("メニューがクリックされたよ"); // 選ばれたメニューのidが item.menuItemId で取得できる chrome.tabs.executeScript({ code: "document.body.style.backgroundColor =‘” + item.menuItemId + "'", }); });
15.

開発 ③公式ドキュメントを見よう

16.

開発 ④拡張機能を公開してみよう

17.

まとめ – Chrome拡張機能の開発には • JavaScript + HTML/CSS • 公式ドキュメント • 入門用サイト

18.

参考リンク • https://note.com/taraco123/n/n22268575b385?magazine_key=mebcf1de3449b • https://qiita.com/sakaimo/items/416f36db1aa982d8d00c

19.

ご清聴ありがとうございました