Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

Разработка » Обсерверы, проблема с более чем одним запущеным FF » 27-10-2009 11:11:13

2 Anton, да такой способ помог :)

Но всё равно как время появится буду попробую добить компонент.

Разработка » Обсерверы, проблема с более чем одним запущеным FF » 27-10-2009 09:53:53

Anton пишет

По уведомлению выдать один алерт и выполнить какие-то действия в каждом окне приложения ?Поставил бы в модуле обсервер с алертом, а в оконных скриптах - обсерверы, выполняющие эти какие-то действия, но без алерта.

Осталось, умножить это на то что никогда подобное не писал, и даже примерно где об этом почитать.
Те же модули 3-мя способами объявляются.
Зря вы так к алерту привязались, я его привёл в качестве примера, что это некоторая функция который выполняется при dl-done.

Разработка » Обсерверы, проблема с более чем одним запущеным FF » 27-10-2009 09:05:05

okkamas_knife
А я программист, у меня нет проблем с написанием алгоритмов и т.п.
Просто область незнакомая, первый раз пишу расширение, а мануалы только по xul =(
Какой-то документации вида "для выполнение такой-то задачи, используются такие-то и такие-то классы интерфейсы" - у меня нет.

Что-то типа твоего варианта пробывал, типа если активно окно выполняем действие над скачены файлом, использовал window.onfocus и window.onblur, которыми как раз и управлял переменой А(как в твоём примере), но браузер вешался.

Да на форум полез-то думал мож кто подходящий адон посоветует, или пример.

Разработка » Обсерверы, проблема с более чем одним запущеным FF » 27-10-2009 02:21:05

Anton пишет

а скрипты оверлеев по тому же уведомлению будут делать всё остальное.

Хотел меня ещё больше запутать? Удалось :)
Если в модуле(который один на все копии браузера), будет обсервер на событие окончания загрузки файла, то чтобы вызывать скрипты оверлея придётся в оверлее подписываться на события модуля, а модуль общий, и значит каждая копия браузера выполнит действие.

Давай по другому подойдём к вопросу, как бы ты реализовал на моём месте. Отслеживание события окончания загрузки файла.

Разработка » Обсерверы, проблема с более чем одним запущеным FF » 26-10-2009 17:33:43

Дело ещё в том, что у меня там не просто алерт, а вполне себе функция :)
Как всё в модуль запихать не представляю.
Жесть, написал своё первое расширение, и встал в том месте, где меньше всего ожидал подвоха =(

Может что ещё, что подскажешь, или примерчик простой.

Пойду какой-нибудь давнлоад плагин поковыряю =\

Разработка » Обсерверы, проблема с более чем одним запущеным FF » 26-10-2009 11:13:48

Если вынести dlObserver в модуль, то где нужно регистрироваться на событие

Выделить код

Код:

window.addEventListener('load' , checker, true);

В модуле, или в мейн скрипте?

Разработка » Обсерверы, проблема с более чем одним запущеным FF » 26-10-2009 03:20:28

>> Пусть алерт вызывает отправитель.

Но отправителем является браузер, событие завершение закачки. Сейчас я слушаю это событие, но слушается каждой копией 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){}
    }
  }
}

:/

Разработка » Обсерверы, проблема с более чем одним запущеным FF » 25-10-2009 17:59:02

Есть код, который вызывает алерт с ссылкой, после того как скачается какой-либо файл:

Выделить код

Код:

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(точнее на каждую копию браузера по алерту).

Как этого избежать? Если при данном способе не избежать, как можно по-другому реализовать нужный мне функционал.

Заранее спасибо.

Разработка » После сохранения файла, с определённым mimeType, отредактировать файл » 16-10-2009 10:09:47

Задаче такая.
Если только что скаченный файл, имеет определённый mimetype, мне нужно открыть его и дописать пару строчек. Возможно ли такое?

Какие можно поковырять адонны на предмет похожего функционала?
Или напишите пожалуйста API которые понадобятся для реализации такого аддона.

ADDED:
Ща попробывал библиотечку Io.js, открыл нужный мне файл, создал новый, скопировал в него содержимого первого и сохранил. В результате фейл.
Файл содержит символы в левой бинарной кодировке, и текст файла обрывается на значках NUL(см. картинку), быть может и ещё на чём.
Можно ли этого избежать?

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]