我想要一个firefox扩展,所以当你点击图标时会打开弹出窗口并在弹出窗口中加载我的页面。
我有下一期。我需要点击扩展图标来获取当前标签的URL并在弹出窗口中加载我的页面,并将该URL作为查询字符串发送。
因此,当您点击图标时,会打开弹出窗口并加载类似" http://example.com?url= {current-URL}"
的页面问题是它在弹出窗口加载我的页面一次,下次点击扩展时它会打开已呈现的弹出窗口。这是我正在使用的代码:
var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");
var tabs = require('sdk/tabs');
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({
width: 700,
height: 543,
contentURL: 'http://example.com?url='+ tabs.activeTab.url,
contextMenu : true,
onHide: handleHide
});
function handleChange(state) {
if (state.checked) {
panel.show({
position: button
});
}
}
function handleHide() {
button.state('window', {checked: false});
}
所以我想要的是每次点击扩展图标时它都会在面板AGAIN中加载我的页面,而不仅仅是显示已经呈现的页面。这有可能吗?我可以做什么,有什么帮助吗?
答案 0 :(得分:1)
Panel的contentURL
属性定义了一个setter,因此更改url非常简单:
function handleChange(state) {
if (state.checked) {
panel.contentURL = 'http://example.com?url='+ tabs.activeTab.url,
panel.show({
position: button
});
}
}