1

私は私のbackground.jsにこれを持っています:

var write = function (line) {
  if (localStorage["silent"] == true) {
    chrome.extension.getBackgroundPage().console.log(line);
  } else {
    alert(line);
  }
}
var getFromStorage = function (item, default) {
  if (localStorage[item] == undefined) {
    write("Could not find " + item + " in local storage...");
    return default;
  } else {
    return localStorage[item];
  }
}

var isOn = getFromStorage("isOn", true);
var silent = getFromStorage("silent", false);

そしてこれは私のpopup.jsにあります:

var bgPage = chrome.extension.getBackgroundPage();
var isOn = bgPage.getFromStorage("isOn", true);
var silent = bgPage.getFromStorage("silent", false);

そして、私はこのエラーを受け取ります:

Object [object Window] has no method 'getFromStorage'

ヘルプは大歓迎です、ありがとう:)

4

1 に答える 1

2

defaultバックグラウンドスクリプトのパラメータを変更する必要があり ます

  var write = function (line) {
    if (localStorage["silent"] == true) {
      chrome.extension.getBackgroundPage().console.log(line);
    } else {
      alert(line);
    }
  }
  var getFromStorage = function (item, d) {
    if (localStorage[item] == undefined) {
      write("Could not find " + item + " in local storage...");
      return d;
    } else {
      return localStorage[item];
    }
  }

  var isOn = getFromStorage("isOn", true);
  var silent = getFromStorage("silent", false);

defaultjavascriptで予約されているため。( Switchステートメントと組み合わせて使用​​されます)
したがって、バックグラウンドページはまったく読み込まれず、検査すると次のようになります。Uncaught SyntaxError: Unexpected token default at background.js:8

8行目で終了するため、実際にはバックグラウンドスクリプトにロードされていないObject [object Window] has no method 'getFromStorage' ため、ポップアップスクリプトでエラーが発生します。getFromStorage

于 2012-12-07T18:03:06.477 に答える