0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Chrome 拡張機能を実装してみたのでハンズオン形式でご紹介

Posted at

エンジニアの方ならよく利用するChrome。
Chromeを使う方なら拡張機能もよく使用するのではないでしょうか。

一般的にはChrome Web Storeで入手することがほとんどですが、
痒い所に手が届くものはなかなかありません。

ということで今回は自作してみました。
手順を載せてますので、よければご覧ください。

リポジトリ

GitHubで公開しています。

手順

開発環境

今回はとてもシンプルにしてみました。

ローカルに、拡張機能開発用ディレクトリを用意して、エディタで開いてください。

ファイルの準備

今回のファイル構成です。

.
├── stopYouTube.js
└── manifest.json

こんな感じ。

ファイルの編集

stopYouTube.js

今回は、自分のYouTube依存を解消するため、YouTubeにアクセスしたら自動的にgoogle.comにリダイレクトするようにします。

window.location.href="https://google.com"

manifest.json

上記のjsファイルに関しては特に重要ではなく、それぞれで実装したい機能を実装していただければと思います。
今回の肝はこのファイルです。


{
    "name": "siteBlocker",
    "version": "1.0.0",
    "manifest_version": 3,
    "description": "This extension can block site.",
    "content_scripts": [
        {
            "matches": [ "https://www.youtube.com/*" ],
            "js": [ "stopYouTube.js" ]
        }
    ]
}

プロパティごとに解説します。

  • name
    拡張機能の名前です。自由に設定していただいて構いません。
  • version
    拡張機能のバージョンです。
*.*.*.*

*には、それぞれ、一桁目が0以外の4つの数字を入れることができます。
(例)1.23.456.7899
ただし、0のみなら大丈夫です。
(例)1.0.23.456

  • manifest_version
    manifest.jsonのバージョンです。
    2022年8月7日現在では、3にしておけばいいかと。
  • description
    拡張機能についての説明です。自由に設定していただいて構いません。
  • content_scripts
    matches
    拡張機能を使用したいURLを記述します。
    書き方が少し特殊で、最後に/*を入れないと、エラーになります。
    詳しくは公式ドキュメントを参照してください。
    js
    今回は、stopYouTube.jsを指定します。

反映

あとはChromeに反映させるだけです。
スクリーンショット 2022-08-07 9.02.34.png
Chromeの右上の拡張機能(パズルのピースみたいなの)をクリックして、一番下の
拡張機能を管理
を選択します。
スクリーンショット 2022-08-07 9.04.10.png
以上のような画面になると思いますので、
右上のデベロッパーモードがオンになっているかをチェックして、なっていなかったらオンにします。
左上の
パッケージ化されていない拡張機能を読み込む
をクリックして、ソースコードをディレクトリごと選択すると、反映されます!

エラーの確認方法

エラー文が出ていると、拡張機能一覧で、削除ボタンの右にエラーというボタンが出てくるので、そちらを押すと、エラー内容が確認できます。

これからの課題

今回は完全に個人開発で、規模も超小規模でしたが、仮に開発するとしたら以下の点を改善する必要がありそうです。

  • 自動アップロード
    毎回ファイルアップロードしなおさないといけないのは面倒臭い。。。
  • TypeScriptでの開発
    プロダクトとして開発するなら、TypeScriptで開発する方がベターですね。
  • Webストアへのアップロード
    公開するにはWebストアに関する知識が必要そうです。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?