當我的插件安裝時,它需要提示用戶獲取用戶名或類似的東西。之後,它存儲它,不應再問。我會在哪裏放置這個提示? install.rdf
? browser.xul
?如何在安裝擴展程序後顯示提示?
0
A
回答
0
1
沒有明確的機制,當擴展安裝到運行的代碼 - 你應該簡單地做它時,你的擴展首次運行。最簡單的方法是檢查用戶名是否已經設置。如果不是 - 顯示提示。
不建議顯示模式對話框,這些對用戶來說非常煩人,特別是當他們在Firefox啓動過程中突然出現時。你應該在標籤頁中打開你的頁面。有點複雜:Firefox啓動時可能會恢復以前的會話。如果您打開頁面太早,會話恢復機制可能會取代它。所以,你應該等待sessionstore-windows-restored
notification,這樣的事情應該工作:
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
var observer = {
observe: function(subject, topic, data)
{
Services.obs.removeObserver("sessionstore-windows-restored", this);
var browser = window.getBrowser();
browser.loadOneTab("chrome://...", {inBackground: false});
},
QueryInterface: XPCOMUtils.generateQI([
Components.interfaces.nsIObserver,
Components.interfaces.nsISupportsWeakReference
])
};
Services.obs.addObserver("sessionstore-windows-restored", observer, true);
最後一個複雜的是,你的代碼可能是從一個瀏覽器窗口疊加運行 - 這意味着將有你的代碼的多個實例,如果會話恢復包含多個窗口。您可能希望上面的代碼只運行一次,而不是在每個瀏覽器窗口中打開您的首次運行頁面。所以你必須以某種方式進行協調,也許通過preferences。一個稍微複雜但更好的解決方案是在你的擴展中有一個JavaScript code module - 代碼模塊只加載一次,所以你不會有協調問題。
相關問題
- 1. 在安裝Chrome擴展程序後顯示通知
- 2. 安裝Edge擴展後不顯示gui
- 3. 在Firefox中顯示通知欄以安裝擴展程序
- 4. Chrome擴展應用程序在安裝後未顯示徽標圖像
- 5. 如何在安裝Chrome擴展程序時顯示彈出窗口
- 6. Force Inno安裝程序在安裝過程中顯示UAC提示
- 7. Chrome如何創建提示對話框來安裝擴展?
- 8. 如何在安裝擴展程序後打開新標籤頁?
- 9. Magento擴展安裝後未顯示管理面板
- 10. 如何顯示Visual Studio代碼中安裝的擴展?
- 11. Installshield,在安裝應用程序後,提示用戶安裝程序
- 12. 如何使用Winrar爲安裝程序創建無提示安裝程序'安裝後運行'
- 13. Chrome擴展程序彈出不顯示?
- 14. Chrome擴展程序圖標不顯示
- 15. 在JavaCard上安裝擴展小程序
- 16. 通過安裝程序部署Chrome擴展 - 不提示可能嗎?
- 17. Chrome擴展程序,如何唯一標識擴展程序安裝
- 18. 如何在擴展應用程序的類中顯示AlertDialog
- 19. 如何在Google Chrome上顯示tiff擴展程序?
- 20. Magento擴展安裝,但沒有顯示在管理
- 21. 安裝msi後設置擴展程序的默認程序
- 22. 提示安裝ActiveX不顯示
- 23. 如何在顯示Chrome擴展程序彈出窗口後觸發事件?
- 24. 如何顯示在Enterprise Architect的擴展
- 25. MSI程序包的無提示安裝
- 26. 中止NSIS無提示安裝程序
- 27. 顯示安裝後如何顯示小部件的說明
- 28. 如何安裝PHP擴展
- 29. 如何安裝pgAudit擴展?
- 30. 如何安裝ITL擴展
碰巧,你的擴展(和它 - 你寫的漂亮的插件監聽器)在你的擴展安裝時不太可能運行;) –