JavaScript

Backbone.js : View を使いまわす

View を使いまわしたくて、次のようなコードを書いたとする: var ActionsView = Backbone.View.extend({ events: { 'click .show': 'showContent', 'click .change': 'changeContent', }, showContent: function(event) { // じゃんじゃかインスタンスを生…

chrome.tab.sendRequest の代わりに chrome.runtime.sendMessage を使う

Chrome 33 以降、chrome.tabs.sendRequest は非推奨になった。 Deprecated since Chrome 33. Please use runtime.sendMessage. https://developer.chrome.com/extensions/tabs#method-sendRequest https://developer.chrome.com/extensions/extension#event-…

クリップボードにコピーする

拡張機能からクリップボードに文字列をコピーしたい。 方法 background の body に textarea を追加する。 textarea にコピーしたい文字列を設定する。 textarea を選択状態にする。 "copy" コマンドを実行する。 サンプル 次のような機能を持つ拡張機能をつ…

ショートカットキー(キーバインド)

ショートカットキーから拡張機能を実行したい。 結論 大きく分けて方法は2つ。 commands を定義する。 標準のキーバインドが優先される。 バインド可能なキーが限定される。 content_script がキーイベントをハンドルする。 自由にバインドできる。 標準の…

JSONファイルをコンフィグとして読み込む

たとえば、次のようなJSONファイルがある: { "google": "https://www.google.co.jp/", "yahoo": "http://www.yahoo.co.jp/", "": "" }これをコンフィグとして仮想配列に読み込みたい。 方法 Chrome 拡張のローカルファイルは、XMLHttpRequest により読み込…

HTMLElement.value の代わりに、innerHTML または textContent を使う

特定のIDの値によって振る舞いが変化する拡張機能をつくろうとして、 getElementById の value が undefined になり困り果てた。 タブ更新時 URL に 'yahoo' を含む場合、pageAction アイコンを表示 pageAction アイコンをクリック時 Yahoo! トップページの …

background から HTML を取得する

background から HTML を取得したい。 タブ更新時 URL に 'yahoo' を含む場合、pageAction アイコンを表示 pageAction アイコンをクリック時 Yahoo! トップページの HTML を取得したい(←ここ) 結論 やりかたは2通り: chrome.tabs.executeScript によりコ…