слушай, не глянешь?
А кто подскажет код для быстрого сохранения страницы в мхт\маф при использовании расширения MAF.
вобщем чтоб без диалога сохранения в папку по-умолчанию сохранялся файл?
Вроде бы, так:
var targetFile = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile || Components.interfaces.nsIFile); targetFile.initWithPath("D:\\test.mht"); mafSaveDocument( gBrowser.selectedBrowser.contentDocument, { targetFile: targetFile, saveBehavior: gMafMhtmlSaveBehavior //or gMafMaffSaveBehavior } );
Но имя файла придется генерировать самостоятельно.
Но вообще, лучше задать этот вопрос автору.
А то там все уходит в перезаписанную встроенную функцию с кучей параметров:
/** * internalSave: Used when saving a document or URL. * * If aChosenData is null, this method: * - Determines a local target filename to use * - Prompts the user to confirm the destination filename and save mode * (aContentType affects this) * - [Note] This process involves the parameters aURL, aReferrer (to determine * how aURL was encoded), aDocument, aDefaultFileName, aFilePickerTitleKey, * and aSkipPrompt. * * If aChosenData is non-null, this method: * - Uses the provided source URI and save file name * - Saves the document as complete DOM if possible (aDocument present and * right aContentType) * - [Note] The parameters aURL, aDefaultFileName, aFilePickerTitleKey, and * aSkipPrompt are ignored. * * In any case, this method: * - Creates a 'Persist' object (which will perform the saving in the * background) and then starts it. * - [Note] This part of the process only involves the parameters aDocument, * aShouldBypassCache and aReferrer. The source, the save name and the save * mode are the ones determined previously. * * @param aURL * The String representation of the URL of the document being saved * @param aDocument * The document to be saved * @param aDefaultFileName * The caller-provided suggested filename if we don't * find a better one * @param aContentDisposition * The caller-provided content-disposition header to use. * @param aContentType * The caller-provided content-type to use * @param aShouldBypassCache * If true, the document will always be refetched from the server * @param aFilePickerTitleKey * Alternate title for the file picker * @param aChosenData * If non-null this contains an instance of object AutoChosen (see below) * which holds pre-determined data so that the user does not need to be * prompted for a target filename. * @param aReferrer * the referrer URI object (not URL string) to use, or null * if no referrer should be sent. * @param aSkipPrompt [optional] * If set to true, we will attempt to save the file to the * default downloads folder without prompting. * When this function is called, directly or indirectly, by Mozilla * Archive Format to save a file automatically, this parameter can also * be an object with the following properties: * - saveDir: nsILocalFile instance pointing to the directory where the * specified document should be saved. The filename is determined * automatically, using "index" as the basename. * - saveWithMedia: If true, the Save Complete persist object is * configured to save the media files that are present in the page. * - saveWithContentLocation: If true, the Save Complete persist object * is configured to save the page for inclusion in an MHTML file. * - mafEventListener: Object implementing the onSaveNameDetermined, * onDownloadComplete, and onDownloadFailed event functions. The * persistObject property may also be set on the object. * When this function is called, directly or indirectly, by Mozilla * Archive Format to ask the user to save an archive, this parameter can * also be an object with the following properties: * - mafAskSaveArchive: True to ask to save archives only. * - mafSaveTabs [optional]: Array of browser objects corresponding to * the tabs to be saved. * When this function is called, directly or indirectly, by Mozilla * Archive Format to create an archive automatically, this parameter can * also be an object with the following properties: * - targetFile: nsIFile of the final destination page or archive. * - saveBehavior: Save behavior to use when creating the file. * - mafProgressListener: Object implementing the nsIWebProgressListener * interface, used to detect when the operation completes. * @param aCacheKey [optional] * If set will be passed to saveURI. See nsIWebBrowserPersist for * allowed values. */ function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition, aContentType, aShouldBypassCache, aFilePickerTitleKey, aChosenData, aReferrer, aSkipPrompt, aCacheKey)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
okkamas_knife
Благодарю за кнопку для MAF. Все работает.
P.S. Кстати, иконка MAF очень уж издали смахивает на топор палача на плахе. ))) хотя реально там всего-навсего степлер с пачкой бумаг.
Отредактировано WatsonRus (07-07-2012 21:07:16)
Firefox ESR
Отсутствует
okkamas_knife
Ну, можно поковырять расширение и посмотреть, как там вытаскивается имя файла.
Только все равно придется что-то прибавлять при совпадении имен.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
skynet281978 пишет: эти кнопки не соответствуют тому, что я спрашивал.
они не меняют оранжевую кнопку в обычную.а ты создавал кнопку с моим кодом?
она дублирует меню аппбатона - картинку можно ставить любую как у обычной СВну
а оригинальный аппбатон легко скрывается через юзерхром например.(в теме есть код)
был не прав. работает.
но здесь вырисовывается другое.
при желании изменить пункты меню в кнопке при установленном Personal Menu - пункты пропадают.
поправить это можно?
Отсутствует
okkamas_knife этот вариант мне не подходит. Personal Menu мне нужен.
bunda1 вот здесь делал почти как нужно 05-11-2011 21:57:21 и один пользователь в конце страницы скрин разместил с кнопкой с квадратом, но я просто свою иконку втулить хочу. Но там не указан стиль как сделать из оранжевой кнопки обычную. Подскажите?
Отсутствует
но здесь вырисовывается другое.
при желании изменить пункты меню в кнопке при установленном Personal Menu - пункты пропадают.
поправить это можно?
Думаю можно добавить используя Custom Buttons коды, а убрать вообще легко через CSS.
Отредактировано bunda1 (08-07-2012 12:58:04)
Отсутствует
Кнопка Save
4.Capture a region on a page as PNG - сохраняет выделенную область страницы как PNG-изображение,
5. Save entire frame as PNG - сохраняет фреймы на странице как PNG-изображение,
6.Save visible portion as PNG - сохраняет видимую область страницы как PNG-изображение,
7.Save web page as PNG - сохраняет страницу как PNG-изображение(делает скриншот страницы)
можно добавить возможность открытия сохраняемого изображения во внешнем редакторе ?
Добавлено 06-07-2012 09:13:08
... в идеале конечно лучше бы код этих четырёх опций выпилить и поместить в отдельную кнопочку - скриншотер
Еще по поводу кнопки Save, не работает сохранение фавиконки сайта, копирование в буфер обмена фавиконки сайта в виде base64, хотя копирование из контекстного меню любой картинки работает. Можно поправить это?
Отсутствует
Еще по поводу кнопки Save, не работает сохранение фавиконки сайта, копирование в буфер обмена фавиконки сайта в виде base64, хотя копирование из контекстного меню любой картинки работает. Можно поправить это?
Я проверил на FF13 работает а вот на FF16 не работает. Попробую исправить хотя не знаю как. Возможно со временем кнопка вообще перестанет работать на FF16, там собираются что то отключить. Надо полностью переделывать код меню но я не знаю чем его заменить. Кто бы дал образец кода.
Кругом измена и обман! Сейчас пойду и напьюсь.
Отсутствует
Возможно со временем кнопка вообще перестанет работать на FF16, там собираются что то отключить. Надо полностью переделывать код меню но я не знаю чем его заменить. Кто бы дал образец кода.
Кругом измена и обман! Сейчас пойду и напьюсь.
bunda1
Отсутствует
Я проверил на FF13 работает а вот на FF16 не работает. Попробую исправить хотя не знаю как. Возможно со временем кнопка вообще перестанет работать на FF16, там собираются что то отключить. Надо полностью переделывать код меню но я не знаю чем его заменить. Кто бы дал образец кода.
Кругом измена и обман! Сейчас пойду и напьюсь.
При копировании фавиконки консоль ошибок пишет:
Метка времени: 09.07.2012 0:27:29 Ошибка: NS_ERROR_MALFORMED_URI: Component returned failure code: 0x804b000a (NS_ERROR_MALFORMED_URI) [nsIIOService.newURI] Источник: chrome://custombuttons/content/button.js?windowId=Firefox&id=custombuttons-button0@init Строка: 352
Ошибка собственно в этом коде:
Отсутствует
Kamui
На FF14.0 наверно нет фавиконки в адресной строке вот и все. Хотя у меня есть идея, можно брать фавиконку из таба, но вот как?
Отредактировано bunda1 (08-07-2012 20:44:41)
Отсутствует
На FF14.0 наверно нет фавиконки в адресной строке вот и все. Хотя у меня есть идея, можно брать фавиконку из таба, но вот как?
Я в коде не силен, но думаю идея правильная брать фавиконку из таба
Отсутствует
Фавиконку из таба получить легко:
var CurTab = document.getElementById('content').selectedTab; gBrowser.loadURI(CurTab.getAttribute('image','src') );
Добавлено 08-07-2012 21:20:34
Kamui и Крошка Ру
Я исправил кнопку Save(Firefox 3.6 +)
Отредактировано bunda1 (08-07-2012 21:20:34)
Отсутствует
bunda1, Замечательно , полный отпад Спасибо Все пункты меню функционируют в 16.0a1 ..... о добавлении возможности открытия сохранённого скриншота во внешнем редакторе даже не заикаюсь
Отсутствует
только сейчас при копировании фавиконки в base64, также открывается новая вкладка с фавиконкой, раньше этого не было и в принципе не нужно.
Отсутствует
Фавиконку из таба получить легко:
Выделить кодКод:
var CurTab = document.getElementById('content').selectedTab; gBrowser.loadURI(CurTab.getAttribute('image','src') );
а это сохраню в закромах на всякий случай
Отсутствует
о добавлении возможности открытия сохранённого скриншота во внешнем редакторе даже не заикаюсь
Открыть сохранённый скриншот в во внешнем редакторе легко, но я не знаю как получить путь к нему и название.
Отсутствует
Save не просто кнопка, а кнопище - комбайн , заменяющее несколько расширений
Отсутствует
Крошка Ру
Я подумаю как открыть сохранённый скриншот в во внешнем редакторе. И у меня эсть грязные мысли о том что надо в кнопку добавить дополнительные возможности.
Отредактировано bunda1 (08-07-2012 22:23:08)
Отсутствует
Открыть сохранённый скриншот в во внешнем редакторе легко, но я не знаю как получить путь к нему и название.
bunda1 ,
Отредактировано Крошка Ру (08-07-2012 22:38:17)
Отсутствует
Я подумаю как открыть сохранённый скриншот в во внешнем редакторе. И у меня есть грязные мысли о том что надо в кнопку добавить дополнительные возможности.
Подобные мысли скорее могут быть чистые чем грязные
Добавлено 08-07-2012 22:28:21
Путь к скриншоту.
bunda1,ааа... совершенно невнимательно читаю
То есть надо будет указывать в коде папку сохранения?
Отредактировано Крошка Ру (08-07-2012 22:28:21)
Отсутствует
Путь к скриншоту.
Для временных файлов есть nsIFile.createUnique() и nsPIExternalAppLauncher.deleteTemporaryFileOnExit()
https://developer.mozilla.org/en/Code_s … rary_files
И потом
Components.classes["@mozilla.org/uriloader/external-helper-app-service;1"] .getService(Components.interfaces.nsPIExternalAppLauncher) .deleteTemporaryFileOnExit(file);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует