LoginSignup
1
0

More than 5 years have passed since last update.

サイトのテーマカラーを変えるだけのChrome拡張

Posted at

概要

http://neue.cc/
こちらのサイトを読んでいたら目が疲れてきたので、
テキストと背景の色を変更する"browser action"型のchrome拡張を作成。

generator-chrome-extensionを使用してテンプレに乗っかる。

完成イメージ

neue.gif

コード

重要そうな部分だけ抜粋

contentscript.js

contentscript.jsは、
ページの中に挿入されるスクリプト。
ページのDOMにアクセスできる。

contentscript.js
var data = {
    simple: {
        color: "#666666",
        background: "#ffffff"
    },
    sepia: {
        color: "#622d18",
        background: "#f0ddc3"
    },
}

function changeColor(type) {
    $('body').css({
        'background': data[type].background,
    });
    $('div, p, span, input, textarea').css({
        'color': data[type].color,
    });
}
changeColor('simple'); // 初期色

// メッセージを受ける準備
chrome.runtime.onMessage.addListener(function(request, sender, callback){
    if(request){
        changeColor(request);
    }
})

popup.js

popup.jsはブラウザアクション時に表示される、
popup.htmlに読み込まれるファイル。
popup上のDOMにアクセスできる。

popup.js
var queryInfo = {
    active: true,
    windowId: chrome.windows.WINDOW_ID_CURRENT // 設定しないと複数タブを開いたときにバグる
};

chrome.tabs.query(queryInfo, function(tab){
    $('button').on('click', function() {
        var colorType = $(this).attr('data-color');
        // タブにメッセージを送る
        chrome.tabs.sendMessage(tab[0].id, colorType, function(response){});
    })
})

参考
難しいことを考えずに30分でChrome拡張をささっと作る手順
Chromeのオリジナル拡張機能を開発しよう(ソースコードあり)

1
0
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
1
0