2013-05-28 9 views
6

Firefoxを拡張するのにCSSを挿入できませんでした。ここに私のコードです。FirefoxでCSSを注入する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'), 

私はtoolbar buttonsをErik Voldによって使用します。 contentStyleFileが機能していないようです。ボタンをクリックすると、CSSファイルなしでJQueryダイアログが表示されます。

+1

質問:なぜ*すべきなのですか? [tab.attach()のドキュメント](https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/tabs.html#attach%28options%29)にはありません任意の 'contentStyleFile'オプションについて言及しません。 –

+0

私はツールバーのボタンをクリックすると、JQueryライブラリを呼び出す方法は?私は単純なJQueryダイアログウィンドウを表示させたいだけです。 – seb68

+0

コンテンツスクリプトを使用して、ドキュメントにスタイルタグを挿入しますか? –

答えて

2

PageModを使用すると、必要なスタイルシートが表示され、JavaScriptを注入することもできます。この仕事ができるよう

何か:

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') 
}); 

は、その後、あなたは、彼らはただ周りの古いページに添付ぶら下げていないので、あなたはそれで終わったときに、このPageModを破壊したいと思います。

pm.destroy(); 
+0

ありがとうございます。私が 'include:tabs.activeTab.url、'を置くと、うまくいきません。私はすでに 'var tabs = require( 'sdk/tabs');'を持っています。 'include: '*''と書いても動作します。しかし、ボタンをクリックすると、pageModを呼び出すことは可能ですか? – seb68

+0

あなたが渡すPageModオプションに 'attachTo:[" existing "、" top "]、'を追加する必要があります。そうしないと、ページをリロードするまで待機します。 –

+0

ありがとうございます。それは動作しますが、開いている最初のタブでのみ、ツールバーのボタンを押すとpageModを呼び出す方法が検索されます。 – seb68

関連する問題