2014-03-06 27 views
4

我正在创建一个Chrome应用程序。这是我的清单文件。创建全局变量chrome应用程序

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

}

,并在我的js/main.js文件,我已经定义一个全局变量作为全球国际会议。

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变量。

回答

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); 
}