Runner in the High

技術のことをかくこころみ

Chrome Extensionのbackground pageでconstを使うのに気をつけよ

 Chrome Extensionではbackgroundを使っている方々各位にお伝えしたいのがなんといつのまにやらconstで定義した変数がextension.getBackgroundPageメソッドから取れなくなっているということ

background.js
...
const NOTIFY_ID = "default";
const ITEMS_ID = "Items";
...
popup.js
...
var BG = chrome.extension.getBackgroundPage();

console.log(BG.NOTIFY_ID); // "default"
...

 これまではこれでぜんぜんよかったはずが、いまはなぜかconstで定義された変数がすべてundefinedになってしまう! getBackgroundPage関数からはwindowが帰ってきていて、background.jsの中で定義された変数やら関数やらは全てwindowに生やされる形になるのだけれど、どうやらconstはだめらしい。これのせいで公開してた拡張機能が動かなくなっていたのですごく憎い。まあ気づいたから良かったものの、、、
 ということでおとなしくvarを使って定義しましょう。