Firefox 始终显示菜单栏工具栏
Firefox always show menubar toolbar
我正在开发一个 Firefox 扩展,我在其中对 browser.xul 进行了各种更改以自定义 Firefox 的 UI。默认情况下,Firefox 有它的菜单栏 disabled/invisible。我希望它始终显示菜单栏工具栏。
仅供参考,我已禁用右键单击通常显示上下文菜单的工具栏,其中可以使菜单栏可见或消失。
有什么方法可以进行这个设置吗?
这不是解决方案,而是解决方案的开始。
选项 1
弄清楚如何设置比这里的样式更重要的样式 sheet:
看起来当 inactive=true
属性被设置时 chrome://global/content/xul.css
第 289 行它得到一个 css important of height is 0. 我尝试注册一个样式 sheet 和我自己的身高
This is whats applied when `inactive=true` attribute is on it:
toolbar[type="menubar"][autohide="true"][inactive="true"]:not([customizing="true"]) {
min-height: 0 !important;
height: 0 !important;
-moz-appearance: none !important;
border-style: none !important;
}
我试过了,但我的重要性并没有压倒这个,这个页面可能值得一读,它是关于 css 顺序优先级的,我认为可以用这个来完成:http://hungred.com/useful-information/css-priority-order-tips-tricks/
我试过这段代码,但它并不重要:
// globals
Cu.import('resource://gre/modules/Services.jsm');
var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
try {
sss.unregisterSheet(cssUri, sss.AUTHOR_SHEET);
} catch (ignore) {}
var cssUri;
var css = 'toolbar[type="menubar"][autohide="true"][inactive="true"]:not([customizing="true"]) { height: 50px !important; min-height: 50px !important;';
var newURIParam = {
aURL: 'data:text/css,' + encodeURIComponent(css),
aOriginCharset: null,
aBaseURI: null
};
var cssUri = Services.io.newURI(newURIParam.aURL, newURIParam.aOriginCharset, newURIParam.aBaseURI);
sss.loadAndRegisterSheet(cssUri, sss.AUTHOR_SHEET);
我也试过 var css = '#toolbar-menubar[type="menubar"][autohide="true"][inactive="true"]:not([customizing="true"]) { height: 50px !important; min-height: 50px !important;';
注意我是如何使用 #toolbar-menubar
id 而不是标签选择器的,id 具有最高的重要性,但它没有用,即使我在它之后保持选择性。
选项 2
突变观察者,每当附加 inactive=true 时,将其删除。这是不假思索的必火。但是我认为 CSS 选项是首选,因为它可以提供更好的性能。
我试过了,效果很好,
我编辑了 browser.js
和内部 gBrowserInit
函数 onLoad
函数 我在整个 UI 完成加载后添加了以下代码片段。
let toolbar = window.document.getElementById("toolbar-menubar");
if (toolbar) {
window.setToolbarVisibility(toolbar, true, true);
}
我找到这个条目是因为我正在寻找一个解决方案来显示总是 "minimized" 的工具栏,所以我不得不点击 "more tools" 然后点击工具(例如 ublock)。
我的解决方案是转到 about:config
并将值 browser.chrome.toolbar_style
(原为“2”)更改为“1”。重新启动 firefox 后,所有工具再次可见。将其改回“2”并重新启动 firefox 仍然显示所有工具..奇怪的行为。
我正在开发一个 Firefox 扩展,我在其中对 browser.xul 进行了各种更改以自定义 Firefox 的 UI。默认情况下,Firefox 有它的菜单栏 disabled/invisible。我希望它始终显示菜单栏工具栏。 仅供参考,我已禁用右键单击通常显示上下文菜单的工具栏,其中可以使菜单栏可见或消失。
有什么方法可以进行这个设置吗?
这不是解决方案,而是解决方案的开始。
选项 1
弄清楚如何设置比这里的样式更重要的样式 sheet:
看起来当 inactive=true
属性被设置时 chrome://global/content/xul.css
第 289 行它得到一个 css important of height is 0. 我尝试注册一个样式 sheet 和我自己的身高
This is whats applied when `inactive=true` attribute is on it:
toolbar[type="menubar"][autohide="true"][inactive="true"]:not([customizing="true"]) {
min-height: 0 !important;
height: 0 !important;
-moz-appearance: none !important;
border-style: none !important;
}
我试过了,但我的重要性并没有压倒这个,这个页面可能值得一读,它是关于 css 顺序优先级的,我认为可以用这个来完成:http://hungred.com/useful-information/css-priority-order-tips-tricks/
我试过这段代码,但它并不重要:
// globals
Cu.import('resource://gre/modules/Services.jsm');
var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
try {
sss.unregisterSheet(cssUri, sss.AUTHOR_SHEET);
} catch (ignore) {}
var cssUri;
var css = 'toolbar[type="menubar"][autohide="true"][inactive="true"]:not([customizing="true"]) { height: 50px !important; min-height: 50px !important;';
var newURIParam = {
aURL: 'data:text/css,' + encodeURIComponent(css),
aOriginCharset: null,
aBaseURI: null
};
var cssUri = Services.io.newURI(newURIParam.aURL, newURIParam.aOriginCharset, newURIParam.aBaseURI);
sss.loadAndRegisterSheet(cssUri, sss.AUTHOR_SHEET);
我也试过 var css = '#toolbar-menubar[type="menubar"][autohide="true"][inactive="true"]:not([customizing="true"]) { height: 50px !important; min-height: 50px !important;';
注意我是如何使用 #toolbar-menubar
id 而不是标签选择器的,id 具有最高的重要性,但它没有用,即使我在它之后保持选择性。
选项 2
突变观察者,每当附加 inactive=true 时,将其删除。这是不假思索的必火。但是我认为 CSS 选项是首选,因为它可以提供更好的性能。
我试过了,效果很好,
我编辑了 browser.js
和内部 gBrowserInit
函数 onLoad
函数 我在整个 UI 完成加载后添加了以下代码片段。
let toolbar = window.document.getElementById("toolbar-menubar");
if (toolbar) {
window.setToolbarVisibility(toolbar, true, true);
}
我找到这个条目是因为我正在寻找一个解决方案来显示总是 "minimized" 的工具栏,所以我不得不点击 "more tools" 然后点击工具(例如 ublock)。
我的解决方案是转到 about:config
并将值 browser.chrome.toolbar_style
(原为“2”)更改为“1”。重新启动 firefox 后,所有工具再次可见。将其改回“2”并重新启动 firefox 仍然显示所有工具..奇怪的行为。