2013-05-28 37 views
6

Tôi không thể tiêm CSS trong phần mở rộng firefox. Đây là mã của tôi.Tiêm CSS trong firefox thêm vào sdk

var tbb = require('toolbarbutton').ToolbarButton({ 
    id: 'button', 
    label: 'us-button', 
    image: self.data.url('img/on.png'), 
    onCommand: function() { 

    tabs.activeTab.attach ({ 

     contentScriptFile: [ 
      self.data.url('jquery/jquery.min.js'), 
      self.data.url('jquery/jquery-ui.js'), 
      self.data.url('recuperation.js'), 
      self.data.url('dialog.js') 
     ], 
     contentStyleFile: self.data.url('jquery/jquery-ui.css'), 

Tôi sử dụng toolbar buttons bởi Erik Vold. contentStyleFile dường như không hoạt động. Khi tôi nhấp vào nút, hộp thoại JQuery xuất hiện nhưng không có tệp css.

+1

Câu hỏi: tại sao * nên * nó hoạt động? [Tài liệu trên 'tab.attach()'] (https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/tabs.html#attach%28options%29) doesn không đề cập đến bất kỳ tùy chọn 'contentStyleFile' nào. –

+0

Vì vậy, làm thế nào để gọi thư viện JQuery khi tôi bấm vào một nút thanh công cụ? Tôi chỉ muốn hiển thị cửa sổ hộp thoại JQuery đơn giản. – seb68

+0

Sử dụng tập lệnh nội dung của bạn để chèn một thẻ kiểu vào tài liệu? –

Trả lời

2

Bạn có thể lấy đi bằng cách sử dụng PageMod sẽ mang đến bảng định kiểu mà bạn muốn và cũng có thể tiêm JavaScript.

Something như thế này có thể làm việc:

var pm = require("sdk/page-mod").PageMod({ 
    include: tabs.activeTab.url, 
    attachTo: ["existing", "top"], 
    contentScriptFile: [ 
    self.data.url('jquery/jquery.min.js'), 
    self.data.url('jquery/jquery-ui.js'), 
    self.data.url('recuperation.js'), 
    self.data.url('dialog.js') 
    ], 
    contentStyleFile: self.data.url('jquery/jquery-ui.css') 
}); 

Sau đó, sau đó bạn sẽ muốn tiêu diệt PageMod này khi bạn đang thực hiện với nó vì vậy họ không chỉ treo xung quanh gắn liền với trang cũ.

pm.destroy(); 
+0

Cảm ơn bạn đã phản hồi. Khi tôi đặt 'include: tabs.activeTab.url,', nó không hoạt động. Tôi đã có 'var tabs = require ('sdk/tabs');'. Nếu tôi viết 'include: '*'', nó hoạt động. Tuy nhiên, có thể gọi trangMod khi tôi nhấp vào một nút? – seb68

+0

Bạn cần thêm 'attachTo: [" existing "," top "],' vào các tùy chọn PageMod mà bạn vượt qua nếu không nó sẽ đợi cho đến khi bạn tải lại trang. –

+0

Cảm ơn bạn. Nó hoạt động nhưng chỉ trên tab đầu tiên đã được mở, đó là lý do tại sao tôi tìm kiếm một cách để gọi pageMod khi tôi nhấn một nút trong thanh công cụ. – seb68