我正在创建一个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变量。
答案 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);
}