Страницы: 1
Вот собственно идея возникла написать такое расширение, которое бы позволяло абсолютно на любой ссылке вызывать диалог сохранения ( где можно выбирать чем сохранять данную ссылку - chrome://mozapps/content/downloads/unknownContentType.xul ).
Собственно зачем? Объясню - например если я хочу передать страницу в стороннюю программу.
Конечно можно просто добавить пунктик в контекстное меню, но мне было бы удобно сделать это из того самого диалога.
Покопавшись в исходниках, нашел что реализация открытия этого диалога находится в nsHelperAppDlg.js и реализуется в интерфейсе nsUnknownContentTypeDialog. Вопрос только вот в чем - как им воспольозваться? Как показать этот диалог с нужным мне URL?
Может кто сталкивался? Меня устроит любой исходник или название расширения, которое в процессе своей работы вызывает данный диалог - остальное - дело техники
Заранее спасибо!
Отсутствует
Извиняюсь, что не отвечаю на вопрос. Просто хочу заметить, что этот диалог сохранения и так не во всех случаях работает. Если вдруг у тебя что-нибудь выйдет, то, может, и этот баг получится заодно пофиксить? Было бы здорово.
Отсутствует
Тема перенесена из форума «Firefox» в форум «Разработка».
Через сомнения приходим к истине. Цицерон
Отсутствует
Извиняюсь, что не отвечаю на вопрос. Просто хочу заметить, что этот диалог сохранения и так не во всех случаях работает. Если вдруг у тебя что-нибудь выйдет, то, может, и этот баг получится заодно пофиксить? Было бы здорово.
Вот я именно и хочу сделать чтобы работало принудительно на ЛЮБЫХ ссылках. Будет чтото типа Save As Force
Отсутствует
ionicman
Вот собственно идея возникла написать такое расширение, которое бы позволяло абсолютно на любой ссылке вызывать диалог сохранения ( где можно выбирать чем сохранять данную ссылку - chrome://mozapps/content/downloads/unknownContentType.xul ).
Собственно зачем? Объясню - например если я хочу передать страницу в стороннюю программу.
Наверное можно посмотреть в любом расширении, которое добавляет свои варианты сохранения: например расширения, устанавливаемые качалками, ну или тот же FlashGot
А вообще мб проще добавить нужные приложения в список FlashGot?
Добавлено 07-10-2009 09:59:47
Кстати и расширения типа IE/OperaView тоже могут подойти.
--- ---
Отсутствует
Наверное можно посмотреть в любом расширении, которое добавляет свои варианты сохранения: например расширения, устанавливаемые качалками, ну или тот же FlashGot
А вообще мб проще добавить нужные приложения в список FlashGot?Добавлено Сегодня 09:59:47
Кстати и расширения типа IE/OperaView тоже могут подойти.
Как добавить я знаю, это как раз не проблема, проблема ПРИНУДИТЕЛЬНО вызвать этот диалог и передать нужный мне URL.
Отсутствует
Пункт контекстного меню «Сохранить объект как» работает примерно так:
document.popupNode = linkNode; new nsContextMenu( document.getElementById("contentAreaContextMenu"), gBrowser ).saveLink();
Только при вызове из контекстного меню document.popupNode прописывается автоматически.
chrome://browser/content/nsContextMenu.js
И можно посмотреть, что вызывается при Alt+клик по ссылке (там по-другому, как ни странно):
chrome://browser/content/browser.js
function handleLinkClick(event, href, linkNode) { ... if (event.altKey) { saveURL(href, linkNode ? gatherTextUnder(linkNode) : "", null, true, true, doc.documentURIObject); return true; }
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher, спасибо огромное. попробую поглядеть.
А я почемуто сознательно пропускал saveURL, потому как оно вроде выдает не диалог выбора чем сохранять а просто стандартное окно сохранения файла...
Отсутствует
Хм, похоже, что и правда всегда без выбора.
А поиск по «chrome://mozapps/content/downloads/unknownContentType.xul» среди файлов установленного Firefox находит
Mozilla Firefox\components\nsHelperAppDlg.js
this.mDialog = ww.openWindow(dwi, "chrome://mozapps/content/downloads/unknownContentType.xul", null, "chrome,centerscreen,titlebar,dialog=yes,dependent", null);
Но там как-то хитро все.
Отредактировано Infocatcher (08-10-2009 16:13:44)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Да, просто если открыть диалог - он открывается, но он естественно не работает, надо както юзать nsHelperAppDlg.js. Однако его использование или вызовы / порождения я не смог найти.
Отсутствует
Страницы: 1