Закройте приложение Firefox (alt + F4 или кнопка закрытия) - PullRequest
0 голосов
/ 19 мая 2011

Я хотел бы знать, когда пользователь собирается закрыть приложение Firefox ( alt + F4 или кнопка закрытия).Я пробовал onbeforeunload, это работает, но только когда пользователь нажимает Файл >> Выход.Я написал наблюдателя и использовал событие quit-application, чтобы узнать, когда пользователь выходит, но событие не запускается!

var ObserverTest = {

        register: function() {
            var observerService = Components.classes["@mozilla.org/observer-service;1"]
                .getService(Components.interfaces.nsIObserverService);
          //  observerService.addObserver(ObserverTest, "user-interaction-active", false);
            observerService.addObserver(ObserverTest, "quit-application",false);
        },

        observe: function(subject, topic, data) {


            switch (topic) {
                case 'sessionstore-windows-restored':
                    // do stuff
                    break;
                case 'user-interaction-inactive':
                    // do stuff
                      var url = "http://localhost:13000";
                     var params = "q=hello";
                    var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance();
                    req.open('POST', url, true);
                    req.send('your=data&and=more&stuff=here');
                    break;
                case 'user-interaction-active':
                    // every 5 seconds and immediately when user becomes active


                    break;
                case 'quit-application':
                 obs.removeObserver(this, "quit-application");

                  alert('hello');
                  break;
                  case 'quit-application-requested':
                  alert("hello");
                  break;

            }
        },

        unregister: function() {
            var observerService = Components.classes["@mozilla.org/observer-service;1"]
                .getService(Components.interfaces.nsIObserverService);
         //   observerService.removeObserver(ObserverTest, "user-interaction-active");
            observerService.removeObserver(ObserverText,"quit-application");
        }
    }

1 Ответ

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

Я предполагаю, что это из-за ошибки в вашем случае:

                case 'quit-application':
                 obs.removeObserver(this, "quit-application");

                  alert('hello');
                  break;
                  case 'quit-application-requested':
                  alert("hello");
                  break;

Где определяется "obs"?

...