关闭firefox应用程序(alt + F4或关闭按钮)
问题描述:
我想知道用户何时要关闭firefox应用程序(alt + F4或关闭按钮)。我已经尝试onbeforeunload,它的工作原理,但只有当用户按下文件>>退出。我写了一个观察者,并使用quit-application事件知道用户什么时候退出但没有事件被触发! :/关闭firefox应用程序(alt + F4或关闭按钮)
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");
}
}
答
我想这是因为在你的case语句错误的:哪里是 “OBS” 定义
case 'quit-application': obs.removeObserver(this, "quit-application"); alert('hello'); break; case 'quit-application-requested': alert("hello"); break;
?