Закройте приложение Firefox (alt + F4 или кнопка закрытия)

Я хотел бы знать, когда пользователь собирается закрыть приложение Firefox (alt + F4 или кнопка закрытия). Я пробовал onbeforeunload, он работает, но только когда пользователь нажимает File >> exit. Я написал наблюдателя и использовал событие выхода из приложения, чтобы узнать, когда пользователь завершает работу, но событие не запускается!

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");
        }
    }

person michelle    schedule 19.05.2011    source источник


Ответы (1)


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

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

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

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

person Mark Finkle    schedule 20.05.2011