我有一个非常简单的firefox插件 - 使用addon-sdk进行开发。在教程中,我发现在切换按钮上提到了附加面板,但是我无法找到一种方法(例如)在此面板中点击回调按钮。
这是简化的面板:
<body>
<table width="100%">
<tr>
<td colspan="2" align="center">
<input type="button" id="btnInject" value="Inject!">
</td>
</tr>
</table>
</body>
</html>
这里是main.js
档案的一部分:
var self = require("sdk/self");
var tabs = require("sdk/tabs");
var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");
var button = ToggleButton({
id: "my-button",
label: "my button",
icon: {
"16": "./icon-16.png",
},
onChange: handleChange
});
var panel = panels.Panel({
contentURL: self.data.url("popup.html"),
onHide: handleHide
});
function handleChange(state) {
if (state.checked) {
panel.show({
position: button
});
}
}
function handleHide() {
button.state('window', {checked: false});
}
我需要分配onclick功能,我已经尝试了panel.getElementById('btnInject').onclick
,但找不到getElementById
作为功能。还尝试了一个文档对象,但它也没有定义。
任何人都可以帮助我,如何访问这个元素?
答案 0 :(得分:3)
您无法直接访问面板的DOM。相反,您需要attach a small content script并使用panel.port
API向main.js
发回消息。
有关详细信息,请参阅Communicating using port文档。