2012-07-18 2 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 용 콘텐츠 스크립트 (js 파일을 Chrome 용으로 chrome.extension.getURL()에 사용)에서 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

주요 스크립트 오른쪽이고 목차에 없습니까? 또는 나는 틀린가? – 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; 
관련 문제