当我点击小部件图标时,如何使用contenturl刷新Panel?我的代码很简单:
var data = require("sdk/self").data;
exports.main = function() {
var panel = require("sdk/panel").Panel({
width: 400,
height: 560,
contentURL: "http://sample.com/index.html",
});
panel.on("show", function() {
panel.port.emit("show");
});
require("sdk/widget").Widget({
id: "Sample",
label: "Sample",
contentURL: data.url("icon128.png"),
panel:panel
});
};
答案 0 :(得分:1)
在小部件点击上更改面板的contentURL
,如下所示:
require("sdk/widget").Widget({
id: "Sample",
label: "Sample",
contentURL: data.url("icon128.png"),
panel:panel,
onClick: function() {
panel.contentURL = contentURL;
}
});
请记住以下
从Firefox 29开始,不推荐使用小部件API。请参阅ui模块进行更换。特别是,对于一个简单的按钮,请尝试使用action button或toggle button API。
您可以通过将按钮本身作为位置选项传递到面板的show()方法或其构造函数来将面板附加到切换按钮:
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",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onChange: handleChange
});
var panel = panels.Panel({
contentURL: self.data.url("panel.html"),
onHide: handleHide
});
function handleChange(state) {
if (state.checked) {
panel.show({
position: button
});
}
}
function handleHide() {
button.state('window', {checked: false});
}