2013-10-17 108 views
0

我开始开发Chrome扩展。 在我的情况,我有以下的manifest.json:Chrome扩展程序从后台脚本获取UI元素

{ 
    "name": "mY Notifier", 
    "version": "1.0", 
    "manifest_version": 2, 
    "browser_action": { 
     "default_icon": "icon.png", 
     "default_popup": "popup.html" 
    }, 
    "background": { 
     "scripts": [ 
      "myscript.js" 
     ], 
     "persistent": false 
    }, 
    "permissions": [ 
     "tabs","alarms" 
    ] 
} 

所以,你可以看到我有一个默认弹出HTML页面和后台脚本。

我需要一个后台脚本,因为我需要随时更新图标徽章,当启用扩展(不只是如果用户点击图标)。这工作正常。我在popup.html我有几个复选框。现在在我的后台脚本中,我想检查哪些复选框已启用。我怎样才能做到这一点?我无法使用elementById在popup.html中引用我的UI元素。如何才能做到这一点?

回答

1

您不能从myscript.js访问popup.html,因为popup.html在点击按钮之前未加载。 您可以从popup.html调用myscript.jsfuncton

popup.js code: 

var bg = chrome.extension.getBackgroundPage(); 
bg.someFunction(stateOfCkeckboxes); 
+0

卫生署!好吧,不知道为什么我没有想到这一点。我设法通过消息传递来做到这一点。有什么问题吗?除了这里不是真的需要吗? – Moonlit

相关问题