我有FF扩展,其中自动显示面板事件焦点应该在文本输入字段parameter
上。我正在使用on("show", function())
(在scrip.js
中),但无论我在此函数中插入什么,它都无法正常工作。
有什么建议吗?
main.js:
var panel = panels.Panel({
contentURL: self.data.url("index.html"),
contentScriptFile: self.data.url("script.js"),
onHide: handleHide,
width: 250,
height: 200
});
function handleChange(state) {
if (state.checked) {
panel.show({
position: button
});
}
}
的script.js:
self.port.on("show", function onShow() {
document.getElementById("parameter").focus();
});
答案 0 :(得分:1)
show
是一个事件,它被发送到panel.on("eventname")
回调。 port
用于在插件上下文和面板上下文之间进行消息传递。
即。 panel.port.on(...)
与panel.on(...)
不同。
并且它在面板上下文中不可用。也许您可以为此目的使用pageshow / pagehide dom事件,或者您也可以通过端口将事件从您的插件反映到面板。
答案 1 :(得分:1)
将以下代码添加到main.js
帮助:
panel.on("show", function() {
panel.port.emit("show");
});