Syntax Error.

[Sy] Chrome拡張機能のpopup.htmlで入力途中の内容を保持しておく方法

2015/05/17

Chrome拡張機能を使って開いているページの情報を送信する処理を実装しようと思ってpopup.htmlに入力項目を作ったんですが、閉じるたびに入力内容が消えてしまうので、裏で保持しておく方法を調べました。

昔同じようなものを作った時には、Background Pagesを使ってましたが、どうやらManifestのバージョンが2になってからはEvent Pagesというのを使うのが推奨されている様子。

下記ページに詳しく説明があったので読んでみる。

⇒ Chrome拡張では、Background pages よりも Event pages を使用したほうが良い - よんちゅBlog

公式ドキュメントの翻訳をしてくれているところが参考になりました。

もし実行状態をメモリに保持しておく必要が有るなら、storage API または IndexdDB を使用する。event page は長時間ロードされていないため、実行状態を保持するのに global変数 は使用しないほうが良い。

次の記事もすごく丁寧に説明してくれててわかりやすかったです。localStrageに保持するようにしてるみたいですね。background.htmlを作って、そこで複数のスクリプトを読み込む方法を取ってます。

⇒ 天使やカイザーと呼ばれて » Chrome拡張機能におけるエコ対策(Event pageへの移行方法)

うーん、同じようにやってると思うんだけど、chrome.runtime.getBackgroundPage()でnullが返ってくる・・・。

色々試してみるうちに。。。

ちゃんとオブジェクトが返ってくるようになりました。どうやら、manifest.jsonを編集した後にちゃんとリロードしてなかったのが原因でした。