OS.Constants.Path.profileDir liefert den Pfad zum Profilordner.
Den Pfad zum zu löschenden Ordner erhält man dann z.B. so:
OS.Path.join(OS.Constants.Path.profileDir, "chrome", "Ordner")
Hier ist das alles genau beschrieben:
OS.Constants.Path.profileDir liefert den Pfad zum Profilordner.
Den Pfad zum zu löschenden Ordner erhält man dann z.B. so:
OS.Path.join(OS.Constants.Path.profileDir, "chrome", "Ordner")
Hier ist das alles genau beschrieben:
sam2008 :
Teste folgenden Code in der Config-Datei. In Zeile 3 ist der Pfad zum Ordner einzutragen.
Ja, zum Beispiel:
button.style.listStyleImage = 'url(file:///C:/Users/BenutzerA/Grafiken/Grafik1.png)';
Ich meinte, z.B. ein Skript für einen anderen Button als Vorlage nehmen und entsprechend ändern.
Teste folgendes Skript. Der Button hat noch keine Grafik und ist vorerst ein farbiges Rechteck.
(function() {
if (window.__SSi != 'window0')
return;
CustomizableUI.createWidget({
id: 'tab0-sound-button',
label: 'Ton im ersten Tab',
tooltiptext: 'Ton im ersten Tab',
defaultArea: CustomizableUI.AREA_NAVBAR,
onCommand: function(event) {
event.target.ownerGlobal.gBrowser.tabs[0].toggleMuteAudio();
},
onCreated: function(button) {
button.style.backgroundColor = 'hotpink';
//button.style.listStyleImage = ...
}
});
})();
Alles anzeigen
Geht mit Button, Tastenkombination, (Kontext-)Menü-Eintrag,...
Die JavaScript-Anweisung zum Ein- und Ausschalten des Tons im ersten Tab ist
gBrowser.tabs[0].toggleMuteAudio();
oder
gBrowser.tabs[0].querySelector('.tab-icon-sound').click();
Ich vermute da fehlt noch was, damit es im FF als Eingabe ankommt.
Sieht so aus.
Teste mal:
/* LocationbarCharacters.uc.js */
function initLocationBarCharacters() {
var urlbar = window.document.getElementById("urlbar"),
textBox = window.document.getElementById("urlbar-input-container"),
cxmenu = textBox.getElementsByClassName("textbox-contextmenu"),
cxmenu = cxmenu.item(0)
separator = document.createXULElement("menuseparator"),
menu = document.createXULElement("menu"),
popup = document.createXULElement("menupopup"),
labelArray = [
"* Lesezeichen",
"+ Schlagworte",
"$ Web-Adressen (URLs)",
"# Seitentitel",
"% Aktuell geöffneten Tabs",
"^ Chronik",
"? Eingegebene Seiten"
];
var i;
insertCharacters = function(sym) {
var urlbar = window.document.getElementById("urlbar"),
urlbarInput = window.document.getElementById("urlbar-input"),
urlbarText = urlbarInput.value,
urlbarFocus = window.document.getElementById("Browser:OpenLocation");
// urlbarFocus = window.document.getElementById("focusURLBar");
var pos;
var insertText;
urlbarFocus.doCommand();
if (urlbarText.length === 0) {
urlbarText = sym;
insertText = sym;
} else if (urlbarText.slice(-1) === " ") {
urlbarText = urlbarText + sym;
insertText = sym;
} else {
urlbarText = urlbarText + " " + sym;
insertText = " " + sym;
}
urlbarInput.value = urlbarText;
urlbarInput.dispatchEvent(new InputEvent("input", {inputType: "insertText", data: insertText}));
pos = urlbarText.length;
urlbarInput.setSelectionRange(pos, pos);
},
makeMenuItem = function(label) {
var sym = label.slice(0, 1),
node = document.createXULElement("menuitem");
node.setAttribute("label", label);
node.addEventListener("command", function() { insertCharacters(sym); }, false);
popup.appendChild(node);
};
menu.setAttribute("label", "Einfügen (* + $ # % ^ ? )" );
menu.appendChild(popup);
for (i = 0; i < labelArray.length; i += 1) {
makeMenuItem(labelArray[i]);
}
cxmenu.appendChild(separator);
cxmenu.appendChild(menu);
}
initLocationBarCharacters();
Alles anzeigen
Gern geschehen.
In about:config muss toolkit.tabbox.switchByScrolling auf false stehen. Ist das der Fall?
Teste bitte:
(function() {
if (location != 'chrome://browser/content/browser.xhtml')
return;
const scrollRight = true;
const wrap = true;
const dirFactor = scrollRight ? 1 : -1;
gBrowser.tabContainer.addEventListener('wheel', function(event) {
//event.preventDefault();
event.stopPropagation();
let dir = dirFactor * Math.sign(event.deltaY);
//setTimeout(function() {
gBrowser.tabContainer.advanceSelectedTab(dir, wrap);
//}, 0);
}, true);
})();
Alles anzeigen
@ milupo:
Wenn etwas nicht funktioniert und ich sonst keinen Hinweis habe, schaue ich in die Browserkonsole. Wenn dort nichts Brauchbares steht, versuche ich den Fehler einzugrenzen, indem ich Teile des Skripts auskommentiere und teste.
Zu aktuellen Änderungen steht auch etwas in den Release Notes im Abschnitt "Developer" und dort ist auch ein Link "Developer Information" zu einer ausführlicheren Seite.
Mit der Suchfunktion auf MDN bin ich auch öfters unzufrieden. Sogar wenn man als Suchausdruck den genauen Titel einer Seite nimmt, wird die Seite manchmal nicht gefunden und mit einer Google-Suche ist sie das erste Suchergebnis.
In diesem Fall habe ich die Änderung aus dem in #21 von Speravir erwähnten Skript von Aris. Es ist diese Anweisung, von mir noch etwas vereinfacht:
var appMenuquitbutton = document.querySelector("#appMenu-viewCache")?.content.querySelector("#appMenu-mainView #appMenu-quit-button") || document.querySelector("#appMenu-mainView #appMenu-quit-button");
Wenn es um die Struktur eines Dokuments geht, verwende ich häufig den Inspektor.
Den Quelltext einer Funktion kann man sich oft in der Browserkonsole anzeigen lassen, z.B.
BrowserUtils.restartApplication.toString()
Außerdem sehe ich in MDN-Seiten nach, suche gelegentlich im gesamten Quelltext und sehe mir an, wie es andere machen.
Bugreports lese ich eher selten.
Auch danke, ist für mich ebenfalls hilfreich.
Die Zeile
ist durch diese Zeile zu ersetzen:
var refItem = document.getElementById('appMenu-viewCache').content.getElementById('appMenu-quit-button');
Das ist jeweils:
im Skript aus #1: Zeile 24,
im Skript aus #2: Zeile 46,
im Skript aus #12 : Zeile 11
Hallo,
teste dieses Skript:
(function() {
if (!window.gBrowser)
return;
let bmService = Cc['@mozilla.org/browser/nav-bookmarks-service;1'].getService(Ci.nsINavBookmarksService);
let observer = {
onItemMoved: (a1,a2,a3,a4,newIndex,a6,guid,a8,newParentGuid) => {
if (newIndex != 0) {
PlacesUtils.bookmarks.moveToFolder([guid], newParentGuid, 0);
}
}
}
StarUI.panel.addEventListener('popupshown', function(event) {
if (event.target != this)
return;
bmService.addObserver(observer, false);
});
StarUI.panel.addEventListener('popuphidden', function(event) {
if (event.target != this)
return;
bmService.removeObserver(observer);
});
})();
Alles anzeigen
Hallo,
versuche folgendes:
In about:config setze
browser.link.open_newwindow.restriction auf 0
und
browser.link.open_newwindow.override.external auf 3
Rückmeldungen kann man geben unter Hilfe → Feedback senden…
Siehe auch Where to Submit Firefox Feature Requests?
Einfacher ist es mit diesem Skript und ohne CSS-Code:
(function() {
if (location != 'chrome://browser/content/browser.xhtml')
return;
let tabContextMenu = document.getElementById('tabContextMenu');
let refItem = document.getElementById('context_undoCloseTab');
tabContextMenu.insertBefore(document.getElementById('context_closeTabsToTheEnd'), refItem);
tabContextMenu.insertBefore(document.getElementById('context_closeOtherTabs'), refItem);
tabContextMenu.removeChild(document.getElementById('context_closeTabOptions'));
})();
Alles anzeigen
Funktioniert das Skript aus diesem Beitrag: