2012-09-20 65 views
0

我有一個Firefox插件。我用HTML和CSS創建了一個漂亮的面板小部件。現在,我只需要從面板小部件中獲取我的腳本。我嘗試將當前標籤重定向到按鈕值中指定的新url,如下所示:Firefox擴展,來自面板部件的URL重定向

<button class="myBtnClass AllBtnStyles" value="www.example.com/info">Info</button> 

我在我的文件中也找到了這個腳本;

$(".myBtnClass").click(function() { 
     window.content.location.href = $(this).attr('value');  
    }); 

但按鈕單擊當前選項卡被重定向到

resource://jid0-ulah35kcypxsda4kbau4uierkjw-at-jetpack/add-on-name/data/www.example.com/info 

回答

0

你不能在面板的內容腳本更改標籤,你需要傳遞給插件腳本地址。

所以,在你的面板的腳本:

$(".myBtnClass").click(function() { 
    self.port.emit("changeTab", $(this).attr("value")); 
}); 

在你的附加腳本,需要監聽的端口事件:(假設你的面板被命名爲panel

panel.port.on("changeTab", function(url) { 
    var tabs = require("tabs"); 
    tabs.open(url); // open the url in a new tab 
}); 

見關於port的文檔https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/guides/content-scripts/using-port.html

相關問題