我有一个非常简单的firefox插件 - 使用addon-sdk进行开发 . 在教程中,我发现在切换按钮上提到了附加面板,但我无法找到一种方法(例如)onclick回调到此面板中的按钮 .
这是简化的面板:
<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
作为函数 . 还尝试了一个文档对象,但它也没有定义 .
任何人都可以帮助我,如何访问这个元素?
1 回答
您不需要attach a small content script并使用panel.port API将消息发回
main.js
.有关详细信息,请参阅Communicating using port文档 .