我同意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