创建一个全局变量chrome app

时间:2014-03-06 05:36:27

标签: javascript google-chrome google-chrome-app

我正在创建一个Chrome应用。这是我的清单文件。

{
//...... description and other things
//.......
"app": {
    "background": {
        "scripts": ["js/main.js"]
    }
},
// other things

}

在我的js / main.js文件中,我将全局变量定义为globalData。

    chrome.app.runtime.onLaunched.addListener(function() {

  chrome.app.window.create('/dashboard.html', {
    'bounds': {
      'width': screen.availWidth,
      'height': screen.availHeight
    }
  });
});
var globalData;

(这样做的目的我需要一个可用的整个运行时的变量)。 在dashboar.html中,我包含了services.js文件。有没有办法可以在services.js中使用该globalData变量。

1 个答案:

答案 0 :(得分:5)

在任何Chrome应用程序窗口中,您都可以访问backgroundPage,从而也可以访问分配给其全局对象的变量(顶级var,就像您自动连接一样)

试试这个:

chrome.runtime.getBackgroundPage(function(bgpage) {
  console.log(bgpage.globalData);
})

您还可以保存对背景页面的引用,或保存对全局数据对象本身的引用(通常应用javascript警告):

// in bgpage
var globalData = {};
globalData.apples = ['red', 'green'];

// in app window
var globalData;
chrome.runtime.getBackgroundPage(function(bgpage) {
   globalData = bgpage.globalData;
   main();
})
function main() {
   console.log(globalData.apples);
}