Muss man nun den Code der config.js nach Post 93 ändern oder ist das nicht notwendig?
Falls du die neue Version von aborix nutzen willst, schon. Davon gehe ich zumindest aus. ![]()
Muss man nun den Code der config.js nach Post 93 ändern oder ist das nicht notwendig?
Falls du die neue Version von aborix nutzen willst, schon. Davon gehe ich zumindest aus. ![]()
Welche Zeile muss ich löschen, um die Browser-Laufzeit wegzubekommen?
Gar keine. ![]()
In dieser Zeile...
...setzt du den Wert von 1 auf 0.
Als Button oder Menü? ![]()
Du legst am besten eine neue Datei im chrome-Verzeichnis an und benennst die z.B. BeendenButton.uc.js
Da kopierst du den Code hinein und speicherst ab.
Hier nochmal der vollständige Code:
// Button > Firefox beenden
(function() {
try {
Components.utils.import("resource:///modules/CustomizableUI.jsm");
CustomizableUI.createWidget({
id: "fp-quit",
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: "Beenden",
tooltiptext: "Beenden",
onClick: function() {
goQuitApplication();
},
onCreated: function(aNode) {
aNode.style.listStyleImage = 'url(\'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill="context-fill" d="M8 6a1 1 0 0 0 1-1V1a1 1 0 0 0-2 0v4a1 1 0 0 0 1 1zm3.5-4.032a1 1 0 0 0-1 1.732A4.946 4.946 0 0 1 13 8 5 5 0 0 1 3 8a4.946 4.946 0 0 1 2.5-4.3 1 1 0 0 0-1-1.732 7 7 0 1 0 7.006 0z"></path></svg>\')';
return aNode;
}
});
} catch (e) {
Components.utils.reportError(e);
};
})();
Alles anzeigen
Hier, ich habe dir einen gebastelt: ![]()
try {
Components.utils.import("resource:///modules/CustomizableUI.jsm");
CustomizableUI.createWidget({
id: "fp-quit",
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: "Beenden",
tooltiptext: "Beenden",
onClick: function() {
goQuitApplication();
},
onCreated: function(aNode) {
aNode.style.listStyleImage = 'url(\'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill="context-fill" d="M8 6a1 1 0 0 0 1-1V1a1 1 0 0 0-2 0v4a1 1 0 0 0 1 1zm3.5-4.032a1 1 0 0 0-1 1.732A4.946 4.946 0 0 1 13 8 5 5 0 0 1 3 8a4.946 4.946 0 0 1 2.5-4.3 1 1 0 0 0-1-1.732 7 7 0 1 0 7.006 0z"></path></svg>\')';
return aNode;
}
});
} catch (e) {
Components.utils.reportError(e);
};
Alles anzeigen
EffPeh,
das sehe ich doch schon anders. Auf Seiten die ich erstmalig oder sehr selten ansteuere erlaube ich NoScript temporär, ansonsten permanent. Nach einiger Zeit hast Du eine Whitelist und gut ist.
Bei hundert bis zweihundert Seiten am Tag? Na, viel Spass. ![]()
NoScript ist nur bedingt einsetzbar, denn ab einer gewissen Anzahl von Webseiten, die man z.B. für Recherchen oft nur einmalig ansteuern muss, wird das Tool zur Qual. :roll:
Ausserdem ist das Problem bei der Sache, dass man vertrauenswürdigen Webseiten die Ausführung von Javascript erlaubt. Mal abgesehen davon, das es für den durchschnittlichen Benutzer schwer abzuschätzen ist, ob eine Website tatsächlich vertrauenswürdig ist, bleibt selbst bei einer Validierung immer die Gefahr, das diese Webseite zu einem späteren Zeitpunkt kompromittiert wird.
Der Nutzen steht deshalb für mich persönlich in keiner Relation zum Arbeitsaufwand.
Da gibt es nichts zu schrauben. ![]()
Das ist nun mal nur ein Snippet. Erweiterbar, aber eben nur ein Snippet.
Welche Keys und Funktionen man da einbindet, muss doch jeder für sich selbst entscheiden.
Beispiele siehst du doch auch oben in dem Code. ![]()
Friede hätte mir persönlich aber besser gefallen
Irgendwas, was wir schon inne haben, oder was du selbst zusammen geschustert hast?
Du kannst es auf deiner Platte ja nennen wie du möchtest. ![]()
Selbst gebastelt. ![]()
Diese beiden Dateien sorgen dafür, dass die User-Scripte aus dem Ordner chrome beim Browser-Start einbunden werden. ![]()
Wie die genau funktionieren, kann ich dir allerdings nicht sagen. So genau habe ich mir die nicht angeschaut.
So wie ich das sehe, kannst du den Button verschieben, wie du willst. Sollte kein Problem sein. ![]()
Ich weiß, wie ich den Browser selbst inspizieren kann, aber das Kontextmenü ist immer weg, sobald ich in den Inspektor gehe.
Das kannst du verhindern, wenn du vorher im Tool oben rechts das Icon mit den vier kleinen Quadraten anklickst. ![]()
Rechtsklick??? Jeder Klick hat das bewirkt - und nun kann ich klicken womit und wieviel ich will - es klappt! Vielleicht habe Dich auch nicht richtig begriffen... Sogar beim Anpassen-Menü bleibt die Leiste bis zum nächsten Alt. Nur nach Browser-Reset ist die Leiste weg. Getestet habe ich es bisher aber nur in der beta.Gruß Harry
Ich glaube, du hast mich missverstanden, Harry. ![]()
Man kann doch normalerweise die Menüleiste ein- oder ausblenden, indem man oben - z.B. neben der Sucheingabe - mit rechts klickt und im Kontext-Menü den Eintrag "Menüleiste" an- bzw. abwählt. Genau diese Funktion habe ich in dem Script direkt auf die Alt-Taste gelegt. ![]()
EffPeh,
du kannst gerne, wenn du immer mal wieder selbst was zusammen schraubst, was "Hand und Fuß" hat, dem Kind auch einen Namen geben.
Wir könnten dann mal gerne drüber schauen und wenn es passt, könnte man es als ein neues Script mit in die Sammlung aufnehmen, wenn dir das dann auch natürlich passt.
Gut, dann taufe ich das Script auf den Namen Tanja. ![]()
Ihr könnt hier mit den Schnipseln alles machen, was ihr wollt. Kein Problem. ![]()
Das hier ist allerdings eh nur eine Abwandlung eines Scriptes, das ich bereits irgendwo gepostet habe.
Das Script ist ja erweiterbar. Man muss nur darauf achten, nicht mit schon bestehenden Tasten-Kombinationen oder anderen Scripten in Konflikt zu geraten.
var map = {};
onkeydown = onkeyup = function(e){
e = e || event;
map[e.keyCode] = e.type == 'keydown';
/* map[18] = alt, map[96] = numpad 1 */
if( map[18] == true && map[96] == true ) {
openUILinkIn("https://support.mozilla.com/de/", "tab");
map = {};
}
/* map[18] = alt , map[97] = numpad 1 */
if( map[18] == true && map[97] == true ) {
openUILinkIn("https://addons.mozilla.org/de/firefox/", "tab");
map = {};
}
/* map[18] = alt , map[98] = numpad 2 */
if( map[18] == true && map[98] == true ) {
openUILinkIn("https://www.mozilla.org/de/firefox/beta/all/", "tab");
map = {};
}
/* map[115] = F4 */
if( map[115] == true ) {
document.getElementById('sidebar-button').click();
map = {};
}
/* map[18] = alt */
if( map[18] == true ) {
e.preventDefault();
e.stopPropagation();
var node = document.getElementById('toolbar-menubar');
var isVisible = node.getAttribute('autohide');
if( isVisible == 'false' ) {
node.setAttribute('autohide', 'true');
} else {
node.setAttribute('autohide', 'false');
}
map = {};
}
}
Alles anzeigen
Gern geschehen. ![]()
Ich habe einfach nur die Funktion, die im Kontext-Menü steckt (also Rechtsklick auf die Leiste > Menüleiste), direkt auf die Alt-Taste gelegt. Also eine so genannte toggle-Funktion. :wink:
Du könntest es mal so probieren: :wink:
var map = {};
onkeydown = onkeyup = function(e){
e = e || event;
map[e.keyCode] = e.type == 'keydown';
/* map[18] = alt */
if( map[18] == true ) {
e.preventDefault();
e.stopPropagation();
var node = document.getElementById('toolbar-menubar');
var isVisible = node.getAttribute('autohide');
if( isVisible == 'false' ) {
node.setAttribute('autohide', 'true');
} else {
node.setAttribute('autohide', 'false');
}
map = {};
}
}
Alles anzeigen
Alles anzeigen
Ja der Text oben wird durch aborix letzt Lösung zu Verwendung
von Scripten automatisch erzeugt. Es wird wenn nicht vorhanden
der chrome Ordner und die Datei userchrome.js automatisch erstellt,
mit obigen Inhalt.
Die loader Zeile muss man aber noch selber einfügen.
Mfg.
Endor
Oh. Kay. Das erklärt dann auch die uralten Verlinkungen auf noch ältere Scripte in den Kommentaren. ![]()
Was Mozilla anbetrifft, wird es sowat im Fuchs wohl nie und nimmer offiziell geben.
ZitatNaja, der Ordner chrome und die beiden css Dateien waren zumindest gaaaanz früher Standard im Fx.
Ja, war wohl ein Missverständnis. ![]()
Aber anscheinend ist es inzwischen wieder "offiziell". Ich hatte neulich ein Problem und den kompletten chrome-Ordner umbenannt. Und nach dem Neustart habe ich mich etwas gewundert, weil anscheinend automatisch ein neuer chrome-Ordner und darin eine userChrome.js mit folgendem Inhalt erstellt wurden.
/*
* userChromeJS
*
* The file userChrome.js can be used to customize the functioning of Mozilla's
* user interface. Usage and syntax follow below; for useful code snippets see
* http://mozilla.zeniko.ch/userchrome.js.html.
*
* Examples:
* setTimeout(function() { document.title = "A new title for every window" }, 2000);
*
* if (location == "chrome://browser/content/browser.xul") {
* alert("Script loaded in main browser only");
* }
*
* // DOMi window
* if (location == "chrome://inspector/content/inspector.xul") {
* // Move Urlbar box to main toolbar
* var tb = document.getElementById('bxURLBar');
* var el = document.getElementById('mbrInspectorMain');
* if (tb && el) el.appendChild(tb, el.firstChild);
* }
*
* NOTE:
* userChromeJS includes an 'import' function to facilitate file management.
* An absolute path or relative path with Directory name property token can be
* used, as follows:
*
* // Single file (javascript .js or overlay .xul file)
* userChrome.import("Full file path");
* userChrome.import("Relative file path", "Token");
* // All .js and .xul files in a folder will be loaded.
* userChrome.import("Full file folder path");
* userChrome.import("Relative file folder path/name", "Token");
* userChrome.import("*", "Token");
*
* NOTE:
* Absolute windows files and folders must be have backslash escaped:
* "C:\\Program Files\\Mozilla\\scripts\\myscript.js"
*
* Examples:
* // Import script in [ProfileDir]/chrome/scripts/myscript.js
* userChrome.import("scripts/myscript.js", "UChrm");
* // Import script in [Profiles]/scripts/myscript.js (share same script in
* // multiple profiles
* userChrome.import("scripts/myscript.js", "DefProfRt");
* // All .js or .xul in profile chrome directory
* userChrome.import("*", "UChrm");
* // Import overlay
* userChrome.import("C:\\Program Files\\Mozilla\\scripts\\myOverlay.xul");
* // Import everything in Desktop folder /scripts
* userChrome.import("scripts", "Desk");
* // Perhaps the only thing you need in this file..
* if (location == "chrome://browser/content/browser.xul") {
* userChrome.import("scripts", "DefProfRt");
* }
*
* NOTE:
* For a full listing of directory tokens see the two links found here:
* https://developer.mozilla.org/en-US/Add-ons/Code_snippets/File_I_O#Getting_files_in_special_directories
* // What's the path for a token? This will print it in the console.
* userChrome.log(userChrome.getAbsoluteFile("Desk").path, "getAbsoluteFile:'Desk'");
*
* NOTE:
* userChromeJS includes a log function, invoked as follows:
* userChrome.log("string1"[, "string2"])
* Example:
* userChrome.log("hello world!", "myscript.js");
* Results in a console message:
* 2009-05-22 18:07:40 userChromeJS myscript.js: hello world!
*
* NOTE:
* The date format for the userChrome.log console logger may be user defined:
* Example:
* userChrome.dateFormat = "%Y-%m-%d %H:%M:%S";
*
* NOTE:
* The default charSet is "UTF-8"; for code using the 'import' or
* 'importFolder' functions to manage files, the charSet for subscript loader
* may be user defined, prior to calling the import or importFolder functions:
* Example:
* userChrome.charSet = "UTF-8";
*
* NOTE:
* Scripts are stored in a startup cache and loaded from it.
* After a change in userChrome.js you heve to restart Firefox with clearing
* this cache to make sure the changed file is read.
* By default this applies to imported .js files too. You can bypass the cache
* for these scripts with this statement BEFORE any import statement:
* userChrome.ignoreCache = true;
*
*/
Alles anzeigen
Ach ja? Wirklich interessant, denn ich hatte schon eine userChrome.js in meinem Profil, da wussten die meisten hier noch gar nicht, dass es überhaupt sowat wie Firefox gibt!
Aber gut, lassen wir es. Hat eh keinen Sinn!
Also ich weiss mit Sicherheit, dass es in meinem FF 56 weder einen Unterordner chrome noch eine userChrome.js gab. Ich musste die beide erst selbst anlegen.
Und beinhaltet unter anderem das:
* NOTE:
* Scripts are stored in a startup cache and loaded from it.
* After a change in userChrome.js you heve to restart Firefox with clearing
* this cache to make sure the changed file is read.
* By default this applies to imported .js files too. You can bypass the cache
* for these scripts with this statement BEFORE any import statement:
* userChrome.ignoreCache = true;
"Offiziell" gab es bis FF 57 gar keine userChrome.js, also auch keine "offiziellen" Einträge. ![]()
Und die ab FF 57 ist ein einziger Kommentar. ![]()