2012-01-29 41 views
5

Tôi đang phát triển tiện ích mở rộng firefox và tôi muốn có thể đóng cửa sổ firefox (không có bất kỳ xác nhận nào). Ví dụ, tôi muốn đóng cửa sổ firefox nếu một URL cụ thể đã được tải. Mở/đóng tab là dễ dàng với gBrowser, những gì về đóng cửa sổ firefox?Tiện ích mở rộng của Firefox để đóng cửa sổ firefox

Cảm ơn bạn

Trả lời

4

Để thoát khỏi Firefox

Components 
    .classes['@mozilla.org/toolkit/app-startup;1'] 
    .getService(Components.interfaces.nsIAppStartup) 
    .quit(Components.interfaces.nsIAppStartup.eAttemptQuit) 




Để khởi động lại Firefox

var boot = Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(Components.interfaces.nsIAppStartup); 
boot.quit(Components.interfaces.nsIAppStartup.eForceQuit|Components.interfaces.nsIAppStartup.eRestart); 




Flags hữu ích bổ sung

eConsiderQuit: Cố gắng bỏ nếu tất cả các cửa sổ đều đóng cửa.
eAttemptQuit: Cố gắng đóng tất cả các cửa sổ, sau đó thoát nếu thành công.
eForceQuit: Buộc tất cả cửa sổ đóng lại, sau đó thoát.
eRestart: Khởi động lại ứng dụng sau khi thoát. Ứng dụng sẽ được khởi động lại với cùng một cấu hình và một dòng lệnh trống.

1

Có vẻ hiển nhiên nhưng bạn sử dụng window.close() để đóng cửa sổ XUL. Đối với cảnh báo, cách tốt nhất có thể tạm thời chuyển đổi tùy chọn browser.tabs.warnOnClose thành false. Một cái gì đó như thế này nên làm việc:

Components.utils.import("resource://gre/modules/Services.jsm"); 

var prefName = "browser.tabs.warnOnClose"; 
var restorePref = false; 
if (Services.prefs.getBoolPref(prefName)) 
{ 
    Services.prefs.setBoolPref(prefName, false); 
    restorePref = true; 
} 

window.close(); 

if (restorePref) 
    Services.prefs.setBoolPref(prefName, true); 
Các vấn đề liên quan