バックグラウンド・ページの関数や変数をポップアップなどから扱う

バックグラウンド・ページで設定した関数や変数をポップアップなどで利用することは、拡張機能の典型パターンと言えます。
インスタンスを継続的に保持するバックグラウンド・ページに複雑な処理やその生成物を持っておくことは、ポップアップなどの短命なページでの再定義や再作成のオーバーヘッドをなくしてくれます。

バックグラウンド・ページで定義したそれらの呼び出し方は、次のようになります。

/* background page */
function test_function(){
  return 'here is the background page!';
}

var test_var = 'background';
/* popup */
function test_function(){
  return 'hrer is the popup...';
}

var test_var = 'popup';

var bg = chrome.extension.getBackgroundPage();
console.log(bg.test_function());
console.log(bg.test_var);
console.log(test_function());
console.log(test_var);

出力結果は、次のようになります。

here is the background page!
background
here is the popup...
popup