2012-03-29 26 views
5

Tôi đang phát triển một Mozilla Add on. Tôi đang cố mở một tab.Mở một tab trong Mozilla Thêm vào SDK

Theo https://addons.mozilla.org/en-US/developers/docs/sdk/1.0/packages/addon-kit/docs/tabs.html nó được thực hiện bằng

console.log("before tab"); 
var tabs = require("tabs"); 
tabs.open("http://www.example.com"); 

Nhưng nó không phải đang làm việc trên trường hợp của tôi.

Tôi đang làm điều đó trong tập lệnh nội dung. Tôi có một trang có tên là popup.html và một nội dung có tên là popup_script.js.

Mã này đạt được vì thư được ghi lại.

Bất kỳ ý tưởng nào?

Trả lời

6

Tập lệnh nội dung không có quyền truy cập vào API "nâng cao", họ chỉ có thể giao tiếp với tiện ích. Vì vậy, tập lệnh nội dung của bạn nên send a message to the extension và tiện ích sẽ mở tab sau đó. Như thế này:

self.port.emit("openTab", "http://www.example.com"); 

Và trong main.js:

panel.port.on("openTab", function(url) 
{ 
    var tabs = require("tabs"); 
    tabs.open(url); 
}); 
+0

Cảm ơn. Tôi sẽ thử vào ngày mai. Tôi muốn mở một tab để đăng nhập vào facebook và quay lại. Điều đó có thể không? – Tony

+0

Bạn có thể phát hiện khi tab được đóng ('tab.on (" close ", function() {...})') nếu đó là ý của bạn ... –

Các vấn đề liên quan