我同意oleksii。但是,您可以让用户关闭Firefox变得不那么容易。
我目前正在编写一个加载项(通过SDK),它监听“quit-application-requested”Observer Notification并将aSubject.data设置为true,以防止Firefox退出应用程序。
observe: function(aSubject, aTopic, aData) {
if (aTopic == "quit-application-requested") {
aSubject.QueryInterface(Ci.nsISupportsPRBool);
aSubject.data = (this.canQuit() == false);
}
}
但是其实我是想为某个窗口不关闭,如不关闭网络应用程序(的FileMaker数据库)。
所以我也尝试禁用所有的命令,所有按键和所有的菜单(浏览器XUL),像这样:
var allCommands = win.document.getElementsByTagName("command");
for (let i = 0; i < allCommands.length; i++) {
allCommands[i].setAttribute("disabled", "true");
}
var allKeys = win.document.getElementsByTagName("key");
for (let i = 0; i < allKeys.length; i++) {
allKeys[i].setAttribute("disabled", "true");
}
var allMenus = win.document.getElementsByTagName("menu");
for (let i = 0; i < allMenus.length; i++) {
allMenus[i].setAttribute("disabled", "true");
}
但用户仍可以退出应用程序,从而与Web应用程序关闭窗口除非我阻止打开新的Firefox窗口。
所以“它”的作品,但我希望他们仍然浏览,而不是关闭选项卡驻留的特定选项卡或窗口。
不禁止打开新窗口,它不起作用,因为显然当用户打开一个新窗口,然后当用户按下Alt + F4时,它不会是一个应用程序退出,但窗口关闭。虽然我以为我已经禁用了所有的命令/键/菜单,但仍然存在某种接近的可能性。
有没有人有任何想法如何做到这一点,而不阻止打开新窗口?
您是否对用户系统的每个方面都有100%的控制权?如果你不这样做,那么你想要的是逻辑上不可能的。改变系统的工作方式会更容易,然后改变Firefox与网站的交互方式。简单的解决方案是设置FireFox在关闭时清除所有Cookie。如果添加addtional(有用)信息,我会考虑删除downvote。 – 2012-07-23 14:58:35
考虑如果用户与网络断开连接会发生什么情况:这与关闭浏览器的效果相同吗?如果它确实如何防止断开连接(或等同于暂停机器等)。 – Richard 2012-07-23 14:58:45
我非常怀疑你可以阻止用户关闭Firefox。即使你可以,我想象启发式反病毒/反恶意软件程序会将其标记为潜在恶意。 – saluce 2012-07-23 14:59:23