Расширение Firefox: обрабатывать диалоги сохранения файла - PullRequest
1 голос
/ 21 апреля 2011

На некоторых веб-страницах, которые я посещаю, есть упрямые диалоги сохранения файлов для исполняемых файлов.Я хотел бы выполнить одно из следующих действий, используя расширение:

  1. Сохраните файл по умолчанию и закройте диалоговое окно.Я посмотрел на http://kb.mozillazine.org/File_types_and_download_actions Это действительно не работает для этих файлов (проблема описана в: http://kb.mozillazine.org/File_types_and_download_actions в разделе «Невозможно установить автоматическое действие. Я проверил заголовки.)

    Полагаю, я могу использовать browser.download.manager.closeWhenDone с https: // developer.mozilla.org/en/Download_Manager_preferences, если я выясню первую часть :)

  2. Подавитьменеджер загрузок не отображает никаких подобных диалогов.

Я нашел https: // developer.mozilla.org/en/nsIDownloadManager#addListener () и https: // developer.mozilla.org/en/Download_Manager_improvements_in_Firefox_3, которые выглядят многообещающими.Я действительно не знаю, как извлечь исходный URI для передачи либо.Мне любопытно, есть ли у кого-нибудь существующие примеры их использования или есть лучший способ сделать это.Или, если кто-то знает, какую часть кода Firefox я мог бы вставить, это тоже было бы полезно.

Спасибо!

PS: Извините, мне пришлось разорвать гиперссылки выше с ненужным пробеломпосле https: // - очевидно, мне нужно 10 репутации, чтобы сделать это :)

1 Ответ

0 голосов
/ 07 мая 2011

FWIW, мне удалось обойти это - хотя мое решение, вероятно, не будет работать для большинства других.

К счастью, я управляю прокси-сервером, поэтому я просто исправил отвратительные заголовки (Content-Disposition и Content-Type), прежде чем они достигли Firefox. Это заставляло Firefox открывать диалоговое окно «Сохранить файл», несмотря на мое предпочтение «Всегда сохранять файл этого типа». Кроме того, я установил для свойства browser.download.manager.closeWhenDone значение True. У меня работает, и я путешествую по таким сайтам без прерывания.

...