1

Я новый пользователь плагинов Firefox. Я хотел создать плагин, который будет загружать несколько файлов в очередь, а затем открыть их для практики.Загрузите и откройте Firefox

Мой вопрос в том, есть ли способ загрузить файл из Интернета в плагин. Я знаю о существовании os.file (хотя мне нелегко понять, как использовать его из приведенных примеров). Затем я хотел бы узнать, есть ли способ выполнить файл, используя для него программу по умолчанию.

+0

Хорошая практика для первого аддона. Поэтому для начала включите настройки разработчика: https://developer.mozilla.org/en-US/Add-ons/Setting_up_extension_development_environment?redirectlocale=en-US&redirectslug=Setting_up_extension_development_environment#Development_preferences, затем откройте блокнот с помощью Shift + F4, а затем установите меню Environment Browser. Теперь вы можете запускать код в облачной области. Затем начните вставлять примеры из MDN, как здесь: https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm#Examples – Noitidart

ответ

1

Начиная с версии Firefox 26, в дополнительных SDK, перезагружаемых/загрузочных или наложенных расширениях, наиболее подходящим способом загрузки файла из надстройки является использование модуля кода JavaScript Downloads.jsm.

Загрузка в локальный файл например, из MDN Downloads.jsm страницы:

Components.utils.import("resource://gre/modules/Downloads.jsm"); 
Components.utils.import("resource://gre/modules/osfile.jsm") 
Components.utils.import("resource://gre/modules/Task.jsm"); 

Task.spawn(function() { 
    yield Downloads.fetch("http://www.mozilla.org/", 
         OS.Path.join(OS.Constants.Path.tmpDir, 
            "example-download.html")); 
    console.log("example-download.html has been downloaded."); 
}).then(null, Components.utils.reportError); 

Если вы хотите, чтобы начать загрузку точно так, как если бы пользователь инициировал его, то вы должны увидеть мой ответ на How to launch a normal download from an addon ,