2013-12-08 3 views
1

Firefox에 기존 Chrome 확장 프로그램을 이식하려고 시도했습니다.
확장 프로그램은 콘텐츠 스크립트를 사용하여 페이지에 요소를 추가하고 해당 요소에서 각도 응용 프로그램을 부트 스트랩합니다.
이 부분은 예상대로 작동하지만 templateUrl을 사용하는 개별 지시문은 차단됩니다. 코드를 실행하면 Access to restricted URI deniedNS_ERROR_DOM_BAD_URI과 같은 오류 메시지가 표시됩니다.Firefox 부가 기능 Angularjs - 콘텐츠 스크립트에서 확장 리소스에 액세스하기

크롬에서이 문제는 'web_accessible_resources'허용 목록으로 해결됩니다.
previous question은 Firefox의 확장 프로그램 리소스에 액세스하는 유사한 방법이 없음을 나타냅니다. 관련 템플릿을 모두 인라인 할 수는 있지만 페이지에 프로그래밍 방식으로 삽입 된 여러 이미지가 포함되어 있기 때문에 이는 다소 불행한 일입니다.
SDK 확장 프로그램의 확장 리소스를 가져올 수있는 방법이 있습니까?
그렇다면 레거시 확장 (암시 된 here)을 사용하는 것이 합리적입니까?

답변

1

SDK의 self module을 사용하여 data 디렉토리에있는 파일의 확인할 수있는 리소스 URI를 가져올 수 있습니다. 각도 파일이 ./data/ 인 경우 다음을 통해 검색 할 수 있습니다.

const self = require('sdk/self'); 
console.log(self.data.url('angular.js')); 
// Prints the url of `./data/angular.js` 
+0

불행히도이 방법은 main.js 또는 유사 콘텐츠 스크립트 (콘텐츠 스크립트 제외)에서만 작동합니다. self.options를 사용하여 main.js의 URI를 콘텐츠 스크립트로 전달하지만 실제로 액세스하는 것은 허용되지 않습니다. – dusty

+0

내용 스크립트는 권한있는 코드가 아니며 commonjs'require' 로더가 없습니다. – jsantell

관련 문제