-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathsidebarAttrubesDetector.uc.js
43 lines (41 loc) · 1.79 KB
/
sidebarAttrubesDetector.uc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// ==UserScript==
// @name sidebarAttrubesDetector.uc.js
// @description 主窗口新增 sidebarCommand 属性
// @version 1.0
// @author Ryan
// @include main
// @compatibility Firefox 78
// @homepageURL https://github.com/benzBrake/FirefoxCustomize
// ==/UserScript==
(function () {
"use strict";
class sidebarAttrubesDetector {
constructor() {
this.sidebarBox = document.getElementById("sidebar-box");
this.observer = new MutationObserver(this.observe);
this.observer.observe(this.sidebarBox, {
attributes: true,
attributeFilter: [
"hidden",
"sidebarcommand",
]
});
document.documentElement.setAttribute('sidebarCommand', document.getElementById("sidebar-box").getAttribute("sidebarcommand") || "");
document.documentElement.setAttribute('sidebarHidden', document.getElementById("sidebar-box").getAttribute("hidden") || "");
}
observe() {
document.documentElement.setAttribute('sidebarCommand', document.getElementById("sidebar-box").getAttribute("sidebarcommand") || "");
document.documentElement.setAttribute('sidebarHidden', document.getElementById("sidebar-box").getAttribute("hidden") || "");
}
}
if (gBrowserInit.delayedStartupFinished) new sidebarAttrubesDetector();
else {
let delayedListener = (subject, topic) => {
if (topic == "browser-delayed-startup-finished" && subject == window) {
Services.obs.removeObserver(delayedListener, topic);
new sidebarAttrubesDetector();
}
};
Services.obs.addObserver(delayedListener, "browser-delayed-startup-finished");
}
})();