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