Страницы: 1
2 Anton, да такой способ помог :)
Но всё равно как время появится буду попробую добить компонент.
По уведомлению выдать один алерт и выполнить какие-то действия в каждом окне приложения ?Поставил бы в модуле обсервер с алертом, а в оконных скриптах - обсерверы, выполняющие эти какие-то действия, но без алерта.
Осталось, умножить это на то что никогда подобное не писал, и даже примерно где об этом почитать.
Те же модули 3-мя способами объявляются.
Зря вы так к алерту привязались, я его привёл в качестве примера, что это некоторая функция который выполняется при dl-done.
okkamas_knife
А я программист, у меня нет проблем с написанием алгоритмов и т.п.
Просто область незнакомая, первый раз пишу расширение, а мануалы только по xul =(
Какой-то документации вида "для выполнение такой-то задачи, используются такие-то и такие-то классы интерфейсы" - у меня нет.
Что-то типа твоего варианта пробывал, типа если активно окно выполняем действие над скачены файлом, использовал window.onfocus и window.onblur, которыми как раз и управлял переменой А(как в твоём примере), но браузер вешался.
Да на форум полез-то думал мож кто подходящий адон посоветует, или пример.
а скрипты оверлеев по тому же уведомлению будут делать всё остальное.
Хотел меня ещё больше запутать? Удалось :)
Если в модуле(который один на все копии браузера), будет обсервер на событие окончания загрузки файла, то чтобы вызывать скрипты оверлея придётся в оверлее подписываться на события модуля, а модуль общий, и значит каждая копия браузера выполнит действие.
Давай по другому подойдём к вопросу, как бы ты реализовал на моём месте. Отслеживание события окончания загрузки файла.
Дело ещё в том, что у меня там не просто алерт, а вполне себе функция :)
Как всё в модуль запихать не представляю.
Жесть, написал своё первое расширение, и встал в том месте, где меньше всего ожидал подвоха =(
Может что ещё, что подскажешь, или примерчик простой.
Пойду какой-нибудь давнлоад плагин поковыряю =\
Если вынести dlObserver в модуль, то где нужно регистрироваться на событие
В модуле, или в мейн скрипте?
>> Пусть алерт вызывает отправитель.
Но отправителем является браузер, событие завершение закачки. Сейчас я слушаю это событие, но слушается каждой копией FF =(
Код что ты привёл либо не подходит, либо я неправильно его понял, вот что я понял:
window.addEventListener('load' , checker, true); var os = null; function checker() { os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService) os.addObserver(dlObserver, 'dl-done', false); } const dlObserver = { sender: false, notify: function () { this.sender = true; os.notifyObservers(os,'dl-done',null); this.sender = false; }, observe: function(subject, topic, state) { if (topic == 'dl-done') { try { if (!this.sender) { var file = subject.QueryInterface(Components.interfaces.nsIDownload); alert(newfile.source.spec) } } catch (e){} } } }
:/
…Есть код, который вызывает алерт с ссылкой, после того как скачается какой-либо файл:
window.addEventListener('load' , checker, true); function checker() { Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService) .addObserver(dlObserver, 'dl-done', false); } const dlObserver = { observe: function(subject, topic, state) { if (topic == 'dl-done') { try { var file = subject.QueryInterface(Components.interfaces.nsIDownload); alert( newfile.source.spec) } catch (e){} } } }
Всё работает, но если запустить ещё одну копию браузера, и скачать какой-нибудь файл, вылетят два alerta(точнее на каждую копию браузера по алерту).
Как этого избежать? Если при данном способе не избежать, как можно по-другому реализовать нужный мне функционал.
Заранее спасибо.
…Всем спасибо, сам справился =0
Задаче такая.
Если только что скаченный файл, имеет определённый mimetype, мне нужно открыть его и дописать пару строчек. Возможно ли такое?
Какие можно поковырять адонны на предмет похожего функционала?
Или напишите пожалуйста API которые понадобятся для реализации такого аддона.
ADDED:
Ща попробывал библиотечку Io.js, открыл нужный мне файл, создал новый, скопировал в него содержимого первого и сохранил. В результате фейл.
Файл содержит символы в левой бинарной кодировке, и текст файла обрывается на значках NUL(см. картинку), быть может и ещё на чём.
Можно ли этого избежать?
Страницы: 1