簡體   English   中英

如何使用firefox插件SDK創建選項彈出對話框?

[英]How do I create an options popup dialog using firefox addon sdk?

因此,我最近決定創建一個我一直在考慮的firefox擴展 ,但是沒有任何經驗。 我閱讀了官方教程后發現, SDK插件似乎很適合我,但使用它似乎很順利。

我要做的是創建一個選項彈出對話框 ,類似於您按alt-tools-options時看到的對話框 也就是說,在頂部帶有標題和關閉按鈕的邊框,在窗口內較大的區域,我可以在其中定義“直觀”(用戶習慣使用皮膚的默認元素)GUI。 頂部的選項卡(常規,隱私安全性等)不是我真正需要的,盡管也不會造成傷害。

所以問題是從我的搜索來看,當您使用addon sdk時,不應該使用具有這些元素的XUL,而應該在面板中使用HTML創建自定義內容。 我認為使用這種方法無法創建類似於真實選項菜單的頂欄,盡管如果我錯了,我不介意予以糾正。

之前我遇到過類似的問題,我希望從工具欄中獲得一個與默認菜單類似的下拉菜單,由於以下原因,我得以解決: 如何將下拉菜單添加到由Firefox附加組件,sdk驅動的附加工具欄按鈕? 可能值得注意的是,打開選項對話框的按鈕是其中所描述的菜單項之一。 我當時正在考慮使用類似的東西可能(又是我不確定),但是可悲的是,我不知道如何創建一個“單獨的”(可拖動的)彈出窗口來使用。

如果可能的話,我希望有一個解決方案,但是如果有人知道這確實是不可能的,請發布這樣的內容,這樣我就可以毫不遺憾地放棄,而只是制作某種自定義HTML面板:)

tldr:有沒有一種方法可以創建一個彈出對話框,其樣式類似於在使用addon sdk開發時可以使用Firefox中的alt-tools-options打開的選項窗口?

本質上,您不應該使用,至少不要使用SDK。

但是,仍然有可能,但是您需要自己做很多事情:

  1. 您需要為加載項注冊chrome:軟件包,因為SDK內部使用的resource: URI在XUL窗口中無法正常工作。 創建一個Chrome注冊文件( chrome.manifest文件)。 自Firefox 24 IIRC起,SDK就支持此功能。
  2. 創建XUL文件。 對於首選項/選項窗口,已經有<prefwindow>綁定。 再看其他的擴展和或Firefox的選項對話框 (這是與多個疊加,所以最好看看其他擴展一個巨大的東西)。 將XUL文件放在chrome/content/<somefile>.xul 然后,這將對應於chrome://<registered_package_from_1>/content/<somefile>.xul
  3. 實現一些將實際顯示窗口的內容。 通常,非SDK附加組件只會將em:optionsURL放入其install.rdf ,以使附加組件管理器自動創建將打開指定URL的“首選項”按鈕,但是在SDK中,它是由package.json和如果我沒有記錯的話,沒有辦法將optionsURL放在package.json 但是您可以做其他事情,例如使用simple-prefs type: control按鈕在about:addons頁面中添加按鈕,或將其添加到某些瀏覽器菜單中(這將需要對XUL進行另一堆修改, require("chrome")代碼。)。 要實際打開對話框,可以使用window/utils.openDialog
  4. 卸載加載項時,不要忘記再次關閉任何打開的窗口。

如您所見,這不是一個簡單的任務...如果您通常只喜歡首選項,請考慮使用simple-prefs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM