당신은에 대한 AddonManager
API를 사용할 수 있습니다
Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.getAddonByID("[email protected]", function(addon)
{
var uri = addon.getResourceURI("install.rdf");
if (uri instanceof Components.interfaces.nsIFileURL)
{
var file = uri.file;
alert(file.parent.path);
}
});
참고로
: Addon, nsIFileURL, nsIFile.
위 코드의 가정은 설치시 확장명의 압축이 풀린 것입니다. 이전 버전은 <em:unpack>true</em:unpack>
에서 install.rdf
까지 추가했을 것입니다. 일반적으로이 플래그는 지정되어서는 안되며, 디스크에 압축 된 확장자는 성능 향상을 위해 남겨 둡니다. 당신은 단순히 확장에서 파일을 읽을 필요가 있다면 당신이 디스크의 실제 파일입니다 필요없이 그것에 대해 XMLHttpRequest
를 사용할 수 있습니다
Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.getAddonByID("[email protected]", function(addon)
{
var uri = addon.getResourceURI("example.txt");
var request = new XMLHttpRequest("GET", uri.spec);
request.addEventListener("load", function()
{
alert(request.responseText);
}, false);
request.send();
});
브릴리언트, 감사합니다! – janoliver
하지만 한 가지 : 파이썬 스크립트를 실행해야하므로 코드의 두 번째 부분이 실제로 제대로 작동하지 않습니다. 하지만 여전히 시작일뿐입니다. 다시 한번 감사드립니다. – janoliver
@janoliver : 예, 코드를 실행하려면 확장명을 풀거나 파이썬 스크립트를 임시 디렉토리에 먼저 복사해야합니다. –