2013-07-07 4 views
2

Как я могу получить доступ к данным расширения Firefox из кода javascript, введенного непосредственно на страницу? Я ищу что-то похожее на web_accessible_resources ключ в manifest.json для chrome extensions. Я строил bootstraped (беззаботное) расширение с addon-sdk. Когда I'm инъекционного отдельных сценариев в страницу из скрипта содержимого он отлично работает, но когда я хочу, чтобы получить доступ к ресурсу со страницы он won't дайте мне - сообщение об ошибке что-то вродеКак я могу получить доступ к ресурсам расширения firefox

доступа к закрытым URI отказано ,

. Я также могу получить доступ к нему из строки url. I'm формат, используя URL генерируется следующим образом:

var data = require("sdk/self").data; 
var url = data.url("some-resource.ext"); 

который дает что-то вроде resource://some_long_addon_id/addon_name/path_to_resource

ответ

1

AFAIK, не допускается.

Можете ли вы указать тип ресурса, который вы пытаетесь прочитать?

Если это сценарий - вы можете загрузить содержимое сценария в сценарий контента, а затем добавить его с помощью сценария тег, вводя его в DOM страницы сценария

//content script 
var resourceData = self.data.load(NAME); 
var head = document.getElementsByTagName('head')[0]; 
var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.innerText = resurceData; 
head.appendChild(script); 

Если текст/XML/HTML/json - вы можете передать его с помощью window.postMessage(). Пример показан здесь a link

Вы также можете найти его полезным, чтобы написать метод в Content скрипт, который прослушивает событие сообщения в сценарии контента, и при получении сообщения в сценарии содержимого из страницы сценария, вы могли бы разместить назад к скрипту страницы, используя window.postMessage() с данными ресурса

+0

ОК, спасибо. Я пытаюсь получить файл шаблона, и поскольку он работает в chtome, я думал, что будет что-то похожее и на firefox. – hynner

Смежные вопросы