所以我創建了一個用戶點擊的窗口小部件,它打開了一個Panel,我有幾個關於面板的問題。 如何設計面板邊框,背景色等。?我在它的contentURL中包含一個HTML文件,我可以添加CSS來改變它嗎?如果是的話,我如何通過CSS選擇它?Firefox插件的造型面板
我也想添加一個關閉按鈕,並保持面板總是打開,除非他們點擊關閉按鈕。
關於第二個想法,對於附加程序,我試圖編程它可能會更好,如果我製作一個窗口,是一個很漂亮的窗口,所以我可以讓它看起來更酷?
感謝您的任何幫助。
所以我創建了一個用戶點擊的窗口小部件,它打開了一個Panel,我有幾個關於面板的問題。 如何設計面板邊框,背景色等。?我在它的contentURL中包含一個HTML文件,我可以添加CSS來改變它嗎?如果是的話,我如何通過CSS選擇它?Firefox插件的造型面板
我也想添加一個關閉按鈕,並保持面板總是打開,除非他們點擊關閉按鈕。
關於第二個想法,對於附加程序,我試圖編程它可能會更好,如果我製作一個窗口,是一個很漂亮的窗口,所以我可以讓它看起來更酷?
感謝您的任何幫助。
我不認爲你可以風格的面板邊框。面板邊框樣式取決於操作系統,您無法觸摸它們。您只能真正影響面板的內部區域,您可以在面板中獲得一個iframe
,您可以使用它。例如。改變背景的面板可以包含:
<style type="text/css">
html
{
background-color: red;
}
</style>
你不能,該面板是不是一個真正的HTML對象,但有一個iframe或HTML裏面XUL窗口。
我相信,因爲火狐30,你可以訪問這個對象,你可以閱讀:
Avoid panel to autoHide in Firefox extension
當然它是一種黑客攻擊,看起來Mozilla是不是真正的「開放」的^^
我能夠修改面板的邊框:如果你知道你的ID的面板只是這樣做
/*run this first*/
var win = Services.wm.getMostRecentWindow('navigator:browser');
var panel = win.document.createElement('panel');
var screen = Services.appShell.hiddenDOMWindow.screen;
var props = {
noautohide: true,
noautofocus: false,
level: 'top',
style: 'padding:15px; margin:0; width:150px; height:200px; background-color:steelblue;border-radius:15px'
}
for (var p in props) {
panel.setAttribute(p, props[p]);
}
win.document.querySelector('#mainPopupSet').appendChild(panel);
panel.addEventListener('dblclick', function() {
panel.parentNode.removeChild(panel)
}, false);
panel.openPopup(null, 'overlap', screen.availLeft, screen.availTop);
所以:
var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
var css = '';
css += '#YourPanelIdHere { border-radius:15px; opacity:.5; border:1px solid red; }';
var cssEnc = encodeURIComponent(css);
var newURIParam = {
aURL: 'data:text/css,' + cssEnc,
aOriginCharset: null,
aBaseURI: null
}
var cssUri = Services.io.newURI(newURIParam.aURL, newURIParam.aOriginCharset, newURIParam.aBaseURI);
sss.loadAndRegisterSheet(cssUri, sss.USER_SHEET);
//sss.unregisterSheet(cssUri, sss.USER_SHEET);
這將樣式您的面板。你不必在樣式表中使用面板ID,只需要面板上的任何東西就可以完成。
Mozilla是開放的,但SDK已經被製作成谷歌Chrome瀏覽器,所以它是開放的,但不是「免費的」。你必須破解它才能完成大量工作。儘管谷歌瀏覽器其實並沒有真正開放。 – Noitidart
這個SDK https://github.com/mozilla/addon-sdk? –