2012-07-18 6 views
7

私はFirefoxの拡張機能に取り組んでおり、コンテンツスクリプトからページにJavaScriptを注入する必要があります。 Chrome拡張機能では、次の操作を行っています。Firefox拡張機能のデータディレクトリにあるファイルを参照するには?

this.initializeJplayerSupport = function() { 
    var script = document.createElement('script'); 
    script.setAttribute('type', 'application/javascript'); 
    script.setAttribute('src', chrome.extension.getURL('js/custom-jplayer.js')); 
    document.head.appendChild(script); 
} 

ファイルは自分のデータディレクトリにあります。 firefox拡張コンテンツスクリプト(私はchrome.extension.getURL()をChrome用に使用していました)のjsファイルをどのように参照できますか?

答えて

10

あなたのSDKベースのアドオン、あなたが必要と「自己」オブジェクトから「データ」のヘルパーを使用中main.jsにしている場合は、次の詳細情報については

var data = require('self').data; 

console.log(data.url('somefile.js')); // prints the resource uri to the file. 

https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/self#data

あなたはこのリソースのURIを取得したら、あなたはその後、self.postMessageまたはself.port.emitを使用してコンテンツスクリプトにそれを供給することができます:

https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts

+0

メインスクリプトの右側にありますし、 contentscriptではなく?または私は間違っていますか? – PeeHaa

+0

これはメインスクリプトの 'main.js'にあります。 – canuckistani

+0

"Firefoxのプラグイン** contentscript **でjsファイルを参照するにはどうすればいいですか?"それは可能なのですか、それとも間違った方法で見ていますか?回答にさらに – PeeHaa

2

Firefox 38以降では、cfxjpmに置き換えられているようです。私は単にそれを少し書き換える必要があった

var data = require('self').data; 

:この行は私のために働いていなかった理由かもしれません

var data = require('sdk/self').data; 
関連する問題