そこで、localStorage の出番が来る。「機能拡張ビルダー」の「スクリプトを終了」で指定した Javascript 内で localStorage を使ってしまうと、その表示しているウェブページの storage になってしまうので、「グローバルページ」で指定した html(もしくは、その html 内で指定している Javascript)内で localStorage を使う。すると、Extension の storage としてコンピュータに保存される。
ということで、「機能拡張ビルダー」内の設定情報は、localStorage がなかった場合にのみ(初めてのインストール、もしくは未使用状態、など)取得すれば良く、その他は localStorage の情報で処理すれば良いと思う。
例えば、「sample」という情報を「key」をいう storage に保存する場合は、こんな感じ。
★保存する場合(「グローバルページ」で指定した html 内の Javascript)
localStorage.setItem("key", "sample");
逆に、localStorage に情報がないときには「機能拡張ビルダー」の「機能拡張の設定」から、情報があるときは localStorage から、thisKey という変数に突っ込む場合はこんな感じ。
★取得する場合(「グローバルページ」で指定した html 内の Javascript)
if (localStorage.setItem.key) {
var thisKey = localStorage.getItem("key");
} else {
var thisKey = safari.extension.settings.getItem("key");
}
var thisKey = localStorage.getItem("key");
} else {
var thisKey = safari.extension.settings.getItem("key");
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.