我已经阅读了firefox附加SDK的选项卡示例文档。我可能错了,但是标签API不适用于新标签吗?
似乎没有一种简单的方法可以点击面板上的按钮,只需更改当前(主)窗口的网址。
我认为我需要一个内容脚本才能完成此任务?
// panel.html
<!DOCTYPE>
<html>
<head>
<script>
function goToHome() {
window.location.replace(http://domain.com/home)
}
</script>
</head>
<body>
<form id="frm1" action="" method="post">
<div><input type="button" onClick="goToHome()" name="Submit" value="home"></div>
</form>
</body>
</html>
答案 0 :(得分:1)
标签API适用于所有打开的标签页。您可以按索引引用各个标签 - var tab = tabs[x]
- 或使用var tab = tabs.activeTab
引用当前标签。然后,您可以使用tab.url = someUrl
设置url。将此代码放在widget的onclick
属性中,您就可以了。所有代码都在main.js中,不需要内容脚本。
如果通过“在面板上”表示在面板中,那么是的,您需要面板的内容脚本,而不是代码显示的页面脚本。见scripting panel content。例如:
var tabs = require("sdk/tabs");
var data = require("sdk/self").data;
var panel = require("sdk/panel").Panel({
contentURL: data.url("panel.html"),
contentScript: "function goToHome() {self.port.emit('goToHome', homeUrl);}"
//OR
contentScriptFile: data.url("panel.js")
});
panel.port.on("goToHome", function(homeUrl) {
tabs.activeTab.url = homeUrl;
}
如果您使用contentScriptFile
,请在数据文件夹中加入panel.js
。这将被注入panel.html
。
var homeUrl = "http://www.google.com/";
function goToHome() {
self.port.emit('goToHome', homeUrl);
}