開発覚書はてな版

個人的な開発関連の備忘録

【Chrome拡張機能 】簡単なサンプルを作ってみる

概要

Chrome拡張機能 の簡単なサンプルを作ってみたいと思います。

developer.chrome.com

Chrome拡張機能でできること

  • browserAction/pageAction - ツールバーにアイコンが追加されて画面表示が可能です。
  • Content Scripts - 実際のWEBページを操作するスクリプトです。
  • Background Scripts - バックグラウンドで常駐するスクリプトです。主にchrome APを使用した処理を行います。
  • 各機能間はメッセージでやりとりされます。

Chrome拡張機能の構成要素

  • manifest.json - 拡張機能の定義ファイル
  • html/css - pageAction/browserAction で表示するデザインを構成
  • js - 各種処理を記載
  • 基本的にはWEBの技術だけで作成できます。

今回作るもの

  • browserAction で画面表示
  • 表示した画面で日付を入力するミリ秒を表示する

使用するライブラリ

  • moment.js

サンプルソース

popup.js

const txtDate = document.getElementById("txtDate");

txtDate.addEventListener('keyup', function(){
  const result = document.getElementById("txtDateResult");
  const date = moment(txtDate.value).toDate();
  result.value = date.getTime().toString();
});

popup.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
</head>
<body style="margin: 0px;">
  <div style="padding: 10px; background: lemonchiffon;">
    <div>
      <h3 style="margin: 0px;">Date Convert</h3>
    </div>
    <div>
      <input type="text" id="txtDate" placeholder="yyyy/MM/dd HH:mm:ss">
    </div>
    <div>
      <input type="text" id="txtDateResult" readonly>
    </div>
  </div>
  <script src="/moment.min.js"></script>
  <script src="/popup.js"></script>
</html>

manifest.json

{
  "manifest_version": 2,
  "name": "Date Convert",
  "version": "1.0",
  "description": "Date Convert",
  "browser_action": {
    "default_popup": "popup.html",
  }
}

インストール方法

  1. Chromeを起動
  2. 拡張機能に遷移
  3. デベロッパーモード」をON
  4. 「パッケージ化されていない拡張機能を読み込む」をクリック
  5. 「manifest.json」が存在するフォルダを選択

実行結果

f:id:kakkoya:20191104235540g:plain

サンプルソース一式

github.com

おわりに

  • manifest.json を定義できればあとはWEB技術のみで実装できるのがよいですね。
  • 簡単な拡張であれば気軽に自作した方が早そうです。