2002Andreas Ich habe noch gar keine Beta verwendet. Bisher habe ich nur die finale (67.*) und das Nightly (69) verwendet. Auf jeden Fall hat die Beta ihr eigenes Profil. Das Profil, was du jetzt für 69 beta nimmst, wirst du dann in ein paar Wochen auch für die 70er beta nehmen können und es sollte eigentlich das Profil der 68er beta gewesen sein. Hast du denn überhaupt eine userChrome.css und userContent.css in der Beta verwendet, und zwar zu dem Zeitpunkt, als Mozilla den Schalter einführte und für die Nutzer der beiden Dateien standardmäßig auf true setzte;? Aber wie gesagt, im Thread geht es um zwei Skripte.
Beiträge von milupo
-
-
Ich sehe das Ganze auch etwas schwierig. Skripte geht ja, die meisten Skripte sind bei Endor und Mithrandir gehostet. Nur sind die beiden nicht immer die Autoren. Aborix postet seine Skripte ins Forum, ich kenne keine andere Quelle für seine Skripte. Aborix müsste seine Skripte also erst einmal irgendwo hosten. Einzig Aris hat seine eigenen Skripte und CSS-Codes gehostet. Da wäre der Verweis auf die Quelle vom eigentlichen Autor machbar.
CSS-Codes werden am laufenden Band neu ausgegeben. Diese entstehen im Forum. Wenn es da eine Quelle geben sollte, müsste z. B. Andreas erst einmal die CSS-Codes irgendwo bei sich hosten und dann mit Quellenverweis herausgeben. Das ist aus meiner Sicht Irrsinn, wenn auch ein Idealfall. Aber idealfälle haben es leider oft so an sich, dass sie nicht eintreten. CSS-Codes entstehen ad hoc für ganz unterschiedliche Fälle.
-
Es geht um zwei Skripte, nicht um CSS. Dass der TE anscheinend nicht den Unterschied zwischen userChrome.js und userChrome.css steht auf einem anderen Blatt.
-
dann ist da noch RestartFirefoxButtonM.uc.js und TabHover.js sowie eine leere userChrome.css.
Zitatim FF hauptordner ist nach wie vor die userChromeJS drin mit der main.js und utilities.js sowie einer readme.txt.
Das brauchst du nur neu zu machen, wenn du auch eine neue Firefox-Installation hast.
Zitatich habe dann den FF via ccleaner bereinigt, der ist nur marginal eingestellt.
Was soll dieser Unsinn? Wozu hast du Firefox bereinigt und schlimmer noch, warum hast du den Ccleaner hier drin herumwerken lassen?
Zitatalso ich kann nicht erkennen das bei jeder aktualisierung eine neues profil angelegt wird - das würde ja appdata ansonsten mächtig aufblasen.
Es wird nicht bei jeder Aktualisierung ein neues Profil angelegt. Es wird für jede Installation ein neues Profil angelegt, du könntest z. B. die finale Version Fx 68, die 69er Beta-Version und das 70er Nightly auf deinem Rechner haben. Für jede Version wird seit Fx 67 ein eigenes Profil verwendet. Wenn die aktualisiert werden, wird kein neues Profil angelegt. Wenn dein Firefox 69 beta einfach auf Fx 68 beta basiert, wird für Fx 69 beta auch weiterhin das Profil verwendet, das du schon für Fx 68 hattest, denn es sind beides Beta-Versionen. Nun hast du aber, warum auch immer, Firefox bereinigt und da wird dann ein neues Profil angelegt.
-
Also ich habe nur ein Profil.
dort befindet sich nach wie vor der Ordner chrome - so wie in eurer Anleitung.
die userChrome.js hab ich mit deinen zeilen angepasst.
da stand eh nur was von "import" drin.
Da verwechselst du was. Wenn da @import drin stand, dann ist das die Datei userChrome.css. die ist für CSS-Code. Hier geht es aber um Skripte, dafür ist die Datei userChrome.js erforderlich. Achte bitte genau auf die Dateiendung.
-
Hallo Son Goku,
ich habe da mal etwas im Angebot; Einen blauen Stern.
JavaScript
Alles anzeigen/* ##### bookmarksmanager.uc.js ##### */ (function() { if (location != 'chrome://browser/content/browser.xul') return; try { CustomizableUI.createWidget({ id: 'books-button', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); var props = { id: 'books-button', class: 'toolbarbutton-1 chromeclass-toolbar-additional', removable: true, label: 'Lesezeichen Manager', accesskey: 'e', tooltiptext: 'Lesezeichen Manager Öffnen', style: 'background: 2px 10px url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjIiIHdpZHRoPSI0LjVtbSIgaGVpZ2h0PSI0LjVtbSIgdmlld0JveD0iMCAwIDQ1MCA0NTAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMjguMjIyIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOm9vbz0iaHR0cDovL3htbC5vcGVub2ZmaWNlLm9yZy9zdmcvZXhwb3J0IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6cHJlc2VudGF0aW9uPSJodHRwOi8vc3VuLmNvbS94bWxucy9zdGFyb2ZmaWNlL3ByZXNlbnRhdGlvbiIgeG1sbnM6c21pbD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9TTUlMMjAvIiB4bWxuczphbmltPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmFuaW1hdGlvbjoxLjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgogPGRlZnMgY2xhc3M9IkNsaXBQYXRoR3JvdXAiPgogIDxjbGlwUGF0aCBpZD0icHJlc2VudGF0aW9uX2NsaXBfcGF0aCIgY2xpcFBhdGhVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNDUwIiBoZWlnaHQ9IjQ1MCIvPgogIDwvY2xpcFBhdGg+CiAgPGNsaXBQYXRoIGlkPSJwcmVzZW50YXRpb25fY2xpcF9wYXRoX3NocmluayIgY2xpcFBhdGhVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNDUwIiBoZWlnaHQ9IjQ1MCIvPgogIDwvY2xpcFBhdGg+CiA8L2RlZnM+CiA8ZGVmcyBjbGFzcz0iVGV4dFNoYXBlSW5kZXgiPgogIDxnIG9vbzpzbGlkZT0iaWQxIiBvb286aWQtbGlzdD0iaWQzIi8+CiA8L2RlZnM+CiA8ZGVmcyBjbGFzcz0iRW1iZWRkZWRCdWxsZXRDaGFycyI+CiAgPGcgaWQ9ImJ1bGxldC1jaGFyLXRlbXBsYXRlLTU3MzU2IiB0cmFuc2Zvcm09InNjYWxlKDAuMDAwNDg4MjgxMjUsLTAuMDAwNDg4MjgxMjUpIj4KICAgPHBhdGggZD0iTSA1ODAsMTE0MSBMIDExNjMsNTcxIDU4MCwwIC00LDU3MSA1ODAsMTE0MSBaIi8+CiAgPC9nPgogIDxnIGlkPSJidWxsZXQtY2hhci10ZW1wbGF0ZS01NzM1NCIgdHJhbnNmb3JtPSJzY2FsZSgwLjAwMDQ4ODI4MTI1LC0wLjAwMDQ4ODI4MTI1KSI+CiAgIDxwYXRoIGQ9Ik0gOCwxMTI4IEwgMTEzNywxMTI4IDExMzcsMCA4LDAgOCwxMTI4IFoiLz4KICA8L2c+CiAgPGcgaWQ9ImJ1bGxldC1jaGFyLXRlbXBsYXRlLTEwMTQ2IiB0cmFuc2Zvcm09InNjYWxlKDAuMDAwNDg4MjgxMjUsLTAuMDAwNDg4MjgxMjUpIj4KICAgPHBhdGggZD0iTSAxNzQsMCBMIDYwMiw3MzkgMTc0LDE0ODEgMTQ1Niw3MzkgMTc0LDAgWiBNIDEzNTgsNzM5IEwgMzA5LDEzNDYgNjU5LDczOSAxMzU4LDczOSBaIi8+CiAgPC9nPgogIDxnIGlkPSJidWxsZXQtY2hhci10ZW1wbGF0ZS0xMDEzMiIgdHJhbnNmb3JtPSJzY2FsZSgwLjAwMDQ4ODI4MTI1LC0wLjAwMDQ4ODI4MTI1KSI+CiAgIDxwYXRoIGQ9Ik0gMjAxNSw3MzkgTCAxMjc2LDAgNzE3LDAgMTI2MCw1NDMgMTc0LDU0MyAxNzQsOTM2IDEyNjAsOTM2IDcxNywxNDgxIDEyNzQsMTQ4MSAyMDE1LDczOSBaIi8+CiAgPC9nPgogIDxnIGlkPSJidWxsZXQtY2hhci10ZW1wbGF0ZS0xMDAwNyIgdHJhbnNmb3JtPSJzY2FsZSgwLjAwMDQ4ODI4MTI1LC0wLjAwMDQ4ODI4MTI1KSI+CiAgIDxwYXRoIGQ9Ik0gMCwtMiBDIC03LDE0IC0xNiwyNyAtMjUsMzcgTCAzNTYsNTY3IEMgMjYyLDgyMyAyMTUsOTUyIDIxNSw5NTQgMjE1LDk3OSAyMjgsOTkyIDI1NSw5OTIgMjY0LDk5MiAyNzYsOTkwIDI4OSw5ODcgMzEwLDk5MSAzMzEsOTk5IDM1NCwxMDEyIEwgMzgxLDk5OSA0OTIsNzQ4IDc3MiwxMDQ5IDgzNiwxMDI0IDg2MCwxMDQ5IEMgODgxLDEwMzkgOTAxLDEwMjUgOTIyLDEwMDYgODg2LDkzNyA4MzUsODYzIDc3MCw3ODQgNzY5LDc4MyA3MTAsNzE2IDU5NCw1ODQgTCA3NzQsMjIzIEMgNzc0LDE5NiA3NTMsMTY4IDcxMSwxMzkgTCA3MjcsMTE5IEMgNzE3LDkwIDY5OSw3NiA2NzIsNzYgNjQxLDc2IDU3MCwxNzggNDU3LDM4MSBMIDE2NCwtNzYgQyAxNDIsLTExMCAxMTEsLTEyNyA3MiwtMTI3IDMwLC0xMjcgOSwtMTEwIDgsLTc2IDEsLTY3IC0yLC01MiAtMiwtMzIgLTIsLTIzIC0xLC0xMyAwLC0yIFoiLz4KICA8L2c+CiAgPGcgaWQ9ImJ1bGxldC1jaGFyLXRlbXBsYXRlLTEwMDA0IiB0cmFuc2Zvcm09InNjYWxlKDAuMDAwNDg4MjgxMjUsLTAuMDAwNDg4MjgxMjUpIj4KICAgPHBhdGggZD0iTSAyODUsLTMzIEMgMTgyLC0zMyAxMTEsMzAgNzQsMTU2IDUyLDIyOCA0MSwzMzMgNDEsNDcxIDQxLDU0OSA1NSw2MTYgODIsNjcyIDExNiw3NDMgMTY5LDc3OCAyNDAsNzc4IDI5Myw3NzggMzI4LDc0NyAzNDYsNjg0IEwgMzY5LDUwOCBDIDM3Nyw0NDQgMzk3LDQxMSA0MjgsNDEwIEwgMTE2MywxMTE2IEMgMTE3NCwxMTI3IDExOTYsMTEzMyAxMjI5LDExMzMgMTI3MSwxMTMzIDEyOTIsMTExOCAxMjkyLDEwODcgTCAxMjkyLDk2NSBDIDEyOTIsOTI5IDEyODIsOTAxIDEyNjIsODgxIEwgNDQyLDQ3IEMgMzkwLC02IDMzOCwtMzMgMjg1LC0zMyBaIi8+CiAgPC9nPgogIDxnIGlkPSJidWxsZXQtY2hhci10ZW1wbGF0ZS05Njc5IiB0cmFuc2Zvcm09InNjYWxlKDAuMDAwNDg4MjgxMjUsLTAuMDAwNDg4MjgxMjUpIj4KICAgPHBhdGggZD0iTSA4MTMsMCBDIDYzMiwwIDQ4OSw1NCAzODMsMTYxIDI3NiwyNjggMjIzLDQxMSAyMjMsNTkyIDIyMyw3NzMgMjc2LDkxNiAzODMsMTAyMyA0ODksMTEzMCA2MzIsMTE4NCA4MTMsMTE4NCA5OTIsMTE4NCAxMTM2LDExMzAgMTI0NSwxMDIzIDEzNTMsOTE2IDE0MDcsNzcyIDE0MDcsNTkyIDE0MDcsNDEyIDEzNTMsMjY4IDEyNDUsMTYxIDExMzYsNTQgOTkyLDAgODEzLDAgWiIvPgogIDwvZz4KICA8ZyBpZD0iYnVsbGV0LWNoYXItdGVtcGxhdGUtODIyNiIgdHJhbnNmb3JtPSJzY2FsZSgwLjAwMDQ4ODI4MTI1LC0wLjAwMDQ4ODI4MTI1KSI+CiAgIDxwYXRoIGQ9Ik0gMzQ2LDQ1NyBDIDI3Myw0NTcgMjA5LDQ4MyAxNTUsNTM1IDEwMSw1ODYgNzQsNjQ5IDc0LDcyMyA3NCw3OTYgMTAxLDg1OSAxNTUsOTExIDIwOSw5NjMgMjczLDk4OSAzNDYsOTg5IDQxOSw5ODkgNDgwLDk2MyA1MzEsOTEwIDU4Miw4NTkgNjA4LDc5NiA2MDgsNzIzIDYwOCw2NDggNTgzLDU4NiA1MzIsNTM1IDQ4Miw0ODMgNDIwLDQ1NyAzNDYsNDU3IFoiLz4KICA8L2c+CiAgPGcgaWQ9ImJ1bGxldC1jaGFyLXRlbXBsYXRlLTgyMTEiIHRyYW5zZm9ybT0ic2NhbGUoMC4wMDA0ODgyODEyNSwtMC4wMDA0ODgyODEyNSkiPgogICA8cGF0aCBkPSJNIC00LDQ1OSBMIDExMzUsNDU5IDExMzUsNjA2IC00LDYwNiAtNCw0NTkgWiIvPgogIDwvZz4KICA8ZyBpZD0iYnVsbGV0LWNoYXItdGVtcGxhdGUtNjE1NDgiIHRyYW5zZm9ybT0ic2NhbGUoMC4wMDA0ODgyODEyNSwtMC4wMDA0ODgyODEyNSkiPgogICA8cGF0aCBkPSJNIDE3Myw3NDAgQyAxNzMsOTAzIDIzMSwxMDQzIDM0NiwxMTU5IDQ2MiwxMjc0IDYwMSwxMzMyIDc2NSwxMzMyIDkyOCwxMzMyIDEwNjcsMTI3NCAxMTgzLDExNTkgMTI5OSwxMDQzIDEzNTcsOTAzIDEzNTcsNzQwIDEzNTcsNTc3IDEyOTksNDM3IDExODMsMzIyIDEwNjcsMjA2IDkyOCwxNDggNzY1LDE0OCA2MDEsMTQ4IDQ2MiwyMDYgMzQ2LDMyMiAyMzEsNDM3IDE3Myw1NzcgMTczLDc0MCBaIi8+CiAgPC9nPgogPC9kZWZzPgogPGRlZnMgY2xhc3M9IlRleHRFbWJlZGRlZEJpdG1hcHMiLz4KIDxnPgogIDxnIGlkPSJpZDIiIGNsYXNzPSJNYXN0ZXJfU2xpZGUiPgogICA8ZyBpZD0iYmctaWQyIiBjbGFzcz0iQmFja2dyb3VuZCIvPgogICA8ZyBpZD0iYm8taWQyIiBjbGFzcz0iQmFja2dyb3VuZE9iamVjdHMiLz4KICA8L2c+CiA8L2c+CiA8ZyBjbGFzcz0iU2xpZGVHcm91cCI+CiAgPGc+CiAgIDxnIGlkPSJjb250YWluZXItaWQxIj4KICAgIDxnIGlkPSJpZDEiIGNsYXNzPSJTbGlkZSIgY2xpcC1wYXRoPSJ1cmwoI3ByZXNlbnRhdGlvbl9jbGlwX3BhdGgpIj4KICAgICA8ZyBjbGFzcz0iUGFnZSI+CiAgICAgIDxnIGNsYXNzPSJHcmFwaGljIj4KICAgICAgIDxnIGlkPSJpZDMiPgogICAgICAgIDxyZWN0IGNsYXNzPSJCb3VuZGluZ0JveCIgc3Ryb2tlPSJub25lIiBmaWxsPSJub25lIiB4PSIwIiB5PSIwIiB3aWR0aD0iNDUwIiBoZWlnaHQ9IjQ1MCIvPgogICAgICAgIDxwYXRoIGZpbGw9InJnYigwLDAsMjU1KSIgc3Ryb2tlPSJub25lIiBkPSJNIDQyOSwxNjggQyA0MjcsMTYzIDQyMywxNjAgNDE5LDE1NyA0MTYsMTU2IDQxMywxNTUgNDA5LDE1NCBMIDMwMSwxMzUgMjUxLDMzIEMgMjUwLDMyIDI1MCwzMiAyNTAsMzEgMjQ3LDI2IDI0NCwyMyAyMzksMjAgMjM0LDE4IDIzMCwxNyAyMjUsMTcgMjE5LDE3IDIxNSwxOCAyMTAsMjAgMjA1LDIzIDIwMiwyNiAxOTksMzEgMTk5LDMyIDE5OSwzMiAxOTksMzMgTCAxNDgsMTM1IDQwLDE1NCBDIDM2LDE1NSAzMywxNTYgMzAsMTU3IDI2LDE2MCAyMiwxNjMgMjAsMTY4IDE3LDE3MyAxNiwxNzcgMTYsMTgzIDE2LDE4OCAxNywxOTIgMjAsMTk3IDIxLDE5OSAyMiwyMDEgMjQsMjAyIEwgMTAxLDI4NiA4NSw0MDEgQyA4NSw0MDIgODUsNDAzIDg1LDQwNSA4NSw0MTAgODYsNDE1IDg4LDQxOSA5MSw0MjQgOTQsNDI3IDk5LDQzMCAxMDQsNDMzIDEwOCw0MzQgMTE0LDQzNCAxMTksNDM0IDEyMyw0MzMgMTI3LDQzMCBMIDIyNSwzODAgMzIyLDQzMSBDIDMyNiw0MzMgMzMxLDQzNCAzMzUsNDM0IDM0MSw0MzQgMzQ1LDQzMyAzNTAsNDMwIDM1NSw0MjcgMzU4LDQyNCAzNjEsNDE5IDM2Myw0MTUgMzY0LDQxMCAzNjQsNDA1IDM2NCw0MDMgMzY0LDQwMiAzNjQsNDAxIEwgMzQ4LDI4NiA0MjUsMjAyIEMgNDI3LDIwMSA0MjgsMTk5IDQyOSwxOTcgNDMyLDE5MiA0MzMsMTg4IDQzMywxODMgNDMzLDE3OSA0MzMsMTc2IDQzMiwxNzMgNDMxLDE3MSA0MzAsMTcwIDQyOSwxNjggWiIvPgogICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICA8L2c+CiAgPC9nPgogPC9nPgo8L3N2Zz4=") no-repeat', oncommand: "PlacesCommandHook.showPlacesOrganizer('AllBookmarks');" }; for (var p in props) toolbaritem.setAttribute(p, props[p]); return toolbaritem; } }); CustomizableUI.registerToolbarNode(tb); } catch(e) { }; }) ();
Es war schon spät und irgendwie gelang es mir nur, die Grafik im Base64-Format zu aktivieren. Daher ist der JavaScript-Code etwas länger.
-
Hallo,
seit Update auf Version 68 habe ich kein Icon mehr in diesem Script
der rest funktioniert. Weis da jemand was zu tuhen ist ?
Das hat einen ganz einfachen Grund. Die Datei allBookmarks.png war eine Bilddatei von Firefox 67 und diese Datei gibt es nicht mehr in Fx 68. Du musst dir also eine andere Datei suchen.
-
jetzt nach der Aktualisierung auf Beta 3 gehen meine beiden Scripte nicht mehr.
eins ist das HOVER script - als TabmixPlus Ersatz bei hover über Tab.
das andere ist der Restart Button.
Könnt ihr mir da weiterhelfen?
Beide Skripte gehen noch, sogar in Fx 70 Nightly. Du hast aber möglicherweise ein neues Profil. Seit Fx 67 hat jede Installation ihr eigenes Profil. Du müsstest die Datei userChrome.js aus deinem alten Profil ins neue kopieren. Im neuen Profil ist wahrscheinlich auch schon eine userChrome.js, mit viel mehr Text, der aber nur aus Kommentaren besteht.
In deiner neuen userChrome.js sollten nur folgende Zeilen enthalten sein:
Du kannst den alten Text auch überschreiben, das heißt, durch die drei Zeilen ersetzen. Die Datei userChrome.js sorgt dafür, dass die Skripte geladen werden.
-
Ich nutze die Urlbar nicht für die Suche, sondern das eigenständige Suchfeld. Durch den Code von 2002Andreas passt es mit dem Pfeil im Suchfeld so wie ich es gerne haben möchte.
Mich grauts da schon wieder von der neuen Adressleiste. Da wird wahrscheinlich wieder einiges an Individuelle Anpassungen so nicht funktionieren oder aussehen wie man es aktuell hat.
Bei der Suchleiste bleibt der Pfeil aber. Es sei denn, du hast ein Skript aktiv, das nach der Suche das Feld automatisch leert.
Ja, es ist doch immer wieder wunderbar sich und andere weit im Vornherein verückt zu machen. Warte es doch erst einmal ab. Wieso soll alles Neue immer schlecht sein? Ich verstehe diese unsinnige Panikmache nicht.
-
Es könnte sich um folgende zwei Bugreports handeln, die für Fx 68 als gelöst angegeben sind:
-
-
ich denke mir, du verwechselst das mit dem Suchfeld. Dort bleibt der Pfeil stehen. Aber in der Adressleiste nicht. Jedenfalls kann ich mich nicht daran erinnern, dass der Pfeil in der Adressleiste bleibt. Nach der Suche bin ich ja sozusagen wieder im URL-Eingabe-Modus und könnte jetzt eine Internetadresse eingeben.
-
Hallo Kerian, wahrscheinlich hatte ich eine ältere Version, denn der Dateiname ist gleich.
Aber stimmt, deine Version funktioniert nicht und ich muss ehrlich sagen, ich bin nicht so bewandert in JavaScript. Da müssen wir wahrscheinlich auf aborix warten, er ist unser JavaScript-Spezialist.
-
Diese Datei hatte ich schon vorher drin.
Schönen Abend noch für dich hwww
Ja, in der ursprünglichen Datei steht viel mehr drin. Aber erstens brauchen wir nicht so viel zweitens ist das alle auskommentiert. Oben die beiden Zeile 2 und 3 in Beitrag #12 sind da auch drin, es müssten nur die Kommentarzeichen entfernt werden. Aber wie gesagt, dann würde man den anderen Text unnützerweise mit sich herumschleppen.
Ich wünsche dir auch einen schönen Abend.
-
Habe eben auf die schnelle ein neues Profil erstellt und nur in "chrome" "about button.uc.js" eingefügt. Klappt aber nicht.
Hast du auch im neuen Profil die Datei userChrome.js neu erstellt? Es gibt im neuen Profil wahrscheinlich schon diese Datei, lösche diese aber und lege sie mit folgendem Inhalt neu an:
Diese Datei ist notwendig, damit die Skripte überhaupt geladen werden.
-
Hallo,
Änderungen für Scripte (Nightly 69) "about Seiten öffnen" und Extra Config Menu" sind bereits lauffähig eingebaut und funktionieren entsprechend in Nightly 69.
In Fx 68 sind noch nicht alle Änderungen von Fx 69 enthalten. Das Skript "about-Seiten öffnen" ist oben in Beitrag #4 für Fx 68. Es funktioniert bei mir. Da sind einige Änderungen nicht enthalten, die es in Fx 69 geben wird. Seit Fx 68 in die Beta gegangen ist, hat sich Fx 69 immer weiter von Fx 68 entfernt. Jetzt ist Fx 69 in der Beta und Fx 70 ist im Nightly. Alle Änderungen, die es in Fx 70 geben wird, werden Fx 69 höchstwahrscheinlich nicht betreffen. So ist das, wenn man Entwicklerversionen benutzt. Du bist mit Fx 69 immer deiner Zeit voraus gewesen und machst mit Fx 68 einen Schritt rückwärts. Wir hier sind alle keine Firefox-Entwickler und wissen nicht genau, welche Änderungen nun am Ende schließlich in eine bestimmte Version übernommen werden.
Das Einzige, was wirklich nicht mehr funktioniert, ist das zugehörge CSS für die Symbole, da Mozilla die Eigenschaft -moz-binding in Fx 68 entfernt hat.
Hier ist eine funktionierende CSS-Datei:
CSS
Alles anzeigen/* AGENT_SHEET */ @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); @-moz-document url(chrome://browser/content/browser.xul){ /* about-button Menü und Rechtsklick Kontextmenüeinträge */ #context-about-menu{ -moz-appearance: none !important; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAvdJREFUeNp8U1tIVFEUXefOnTuj+EpFJTEETSQKogdkBBYRIWERBoZ9BRlYQhj9mH75kUlg9mlhJUEgGZmRRWrkKx+NlD0U0zRmeljojKPjzJ37Ou17nfoQ6Vw253DuWevsddberKbxIRjnrZyjiIODARQMNgEQuN7ijss9KXCDdjnWDoExiIZhtGZu2liUmpIMzlcJRAK/mdMxOS8XM1kpXgs2zwiCAElkj1F14z5fDmvctyxz75JszSvBMC+5Ncx1YlQiEY6EuVb56ihtdnHKgCOsaBiZcFtpmmlJNgZO+xrt1PbNYUtqAtKTnNbV3/0cn+f9uLw7wTxtStCh6TqSExIJTGeIwG7qZ17IJL1waxpa37nhDTjBPnTDM/kRjNJvHs+Bg2cTAcnTNB2d/SOki1kkIjM1JsGgufXtV5zZl4k7d1twMCsFp05UYnHRj5npaXgGhyDCMKBqGgry91gEzCJgGOuaAilBxYFMa1anXNhccAGd3a8w/mkcqhyE3Wa6QEoUkvC81/VPggmI4U6U3x4lO4lUEJHhlBAIBpG4IRErAT/md5QitPCj3bQRiqKiYH/eag2wiE1ELLEgmu61oa76/K72By0ukbTHxsZADmtIdt2EKNqOimQ+STDQ+XrYun2VwPw4juzNRYeSjMKWiZKd2xHyBgJRkiShuroSuqqjvqHBsDKQNRW52WlWidiYSC7Y4RAMVPW4MRudjabDuRev9c/gkDz2q3tgJBU28+mM6YGBvkuiWaRKWLWcsO4mcO3gZsyGTmNRqkB/2TacbfMgNS4OjUPCQOh6/ZVIQYYovlguKASOcsZjRfbB6YhGVd44jnf7MWiCH3mQHichGPQhNtoR47jaP1qx3AGVHtYsfIGTZp2KKawuUQ/YEFK84EyhalRR/nQO6fFOhIJ+jL13vfhdc+ycHYb1wCyShiivLPc8edabbzbS30ZxMAM5LA2eb8C83YaFn+6Xc3UlZRm1XTPhdRoriyIB/x8+ipn1fvwRYABPz3B9ncIrWwAAAABJRU5ErkJggg==") no-repeat !important; background-position: 2px 5px !important;} #context-about-menu .menu-iconic-text{ padding-left:10px !important;} #context-about-menu > menupopup:nth-child(1) menuitem{ -moz-appearance: none !important; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACaUlEQVQ4jXWTX0iTYRSHX9SrLDWJoIugG6F/ULIokC5SIsIgiLwrhCnO9FPLtU2t5VSM5TSEsHRmFkXQhRcmiZEaYrWZTm0V5tRS5ip1iSup5P2ipwvFtpoHHs7V73nhvOcIEa50LoTORV33Z1QpsdhuhGXNYJyiJU7RroZ/Q1hCJToXiUXRJBZFU+fehpe9K4J65heXmJ4L4J1dwDu7gM8fYH5xCYutntVwZHoy9Y51QDRm5z4U91FUKTFb62jvGaD1iSOE9p4BzNa6vwL9gyg+kUADhTR9OczmnB2oUlJcUctaVVxRy+rro+ykgQKqA6eJyBBktjSiSompvIZxr5+3E74Qxr1+TOU1y4KIrFhuoeUOeWxRNpDfPUWlB1QpMVhsTPj8jHz4GMKEz4/BYlsWiKujxOQLzFMnuPZ8E7vOx6K5O4YqJXqzlY5eF62djhA6el3ozVaE0NgRtu+ImyBObqWHQ0AUefejUKUkr6hizRnkmyqDBNUSoT1IoTuFy/7jNM4loUqJYixjaGQSx7AHx7CHwSEvZ2aSOBtIRm+oChKUziBK3rP/SjyNaIkpEKhSkmMoZfjdJH1uD31uD+7XPta3COLbItEbq1a+UWNHlEwjdE2UDW7nyL0ERK4NVUqyz13k8bMh2rqctHU5edTdT+fTN/S+GCO38FKQoHYJkZ1Fdv8exKmNCPM3VCnJUExrziBDMQWtssaOuK4ilGOIC7cRth+oUqLNNfBqdIqHXc7/ujbX8M9BaewIjR3RDKJ5eQ8yFSMv3eN8/fmLdN25kJ6pGMNcZJBIlZLUtHR2H0gJS2paOn8Aay+SGqAm06EAAAAASUVORK5CYII=") no-repeat !important; -moz-image-region: rect(0px 16px 16px 0px) !important; background-position: 2px 5px !important;} #context-about-menu > menupopup:nth-child(1) menuitem .menu-iconic-text{ padding-left:10px !important;} #about-button-popup menuitem{ -moz-appearance: none !important; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACaUlEQVQ4jXWTX0iTYRSHX9SrLDWJoIugG6F/ULIokC5SIsIgiLwrhCnO9FPLtU2t5VSM5TSEsHRmFkXQhRcmiZEaYrWZTm0V5tRS5ip1iSup5P2ipwvFtpoHHs7V73nhvOcIEa50LoTORV33Z1QpsdhuhGXNYJyiJU7RroZ/Q1hCJToXiUXRJBZFU+fehpe9K4J65heXmJ4L4J1dwDu7gM8fYH5xCYutntVwZHoy9Y51QDRm5z4U91FUKTFb62jvGaD1iSOE9p4BzNa6vwL9gyg+kUADhTR9OczmnB2oUlJcUctaVVxRy+rro+ykgQKqA6eJyBBktjSiSompvIZxr5+3E74Qxr1+TOU1y4KIrFhuoeUOeWxRNpDfPUWlB1QpMVhsTPj8jHz4GMKEz4/BYlsWiKujxOQLzFMnuPZ8E7vOx6K5O4YqJXqzlY5eF62djhA6el3ozVaE0NgRtu+ImyBObqWHQ0AUefejUKUkr6hizRnkmyqDBNUSoT1IoTuFy/7jNM4loUqJYixjaGQSx7AHx7CHwSEvZ2aSOBtIRm+oChKUziBK3rP/SjyNaIkpEKhSkmMoZfjdJH1uD31uD+7XPta3COLbItEbq1a+UWNHlEwjdE2UDW7nyL0ERK4NVUqyz13k8bMh2rqctHU5edTdT+fTN/S+GCO38FKQoHYJkZ1Fdv8exKmNCPM3VCnJUExrziBDMQWtssaOuK4ilGOIC7cRth+oUqLNNfBqdIqHXc7/ujbX8M9BaewIjR3RDKJ5eQ8yFSMv3eN8/fmLdN25kJ6pGMNcZJBIlZLUtHR2H0gJS2paOn8Aay+SGqAm06EAAAAASUVORK5CYII=") no-repeat !important; -moz-image-region: rect(0px 16px 16px 0px) !important; background-position: 5px 5px !important;} #about-button-popup menuitem .menu-iconic-text{ padding-left:10px !important;} }
Da du wahrscheinlich schon die entsprechende Datei für Fx 69 hast, sollte diese auch für Fx 68 funktionieren. Ansonsten nimmst du diese hier für Fx 68.
-
Bei mir funktioniert diese Version noch:
JavaScript
Alles anzeigen// ==UserScript== // @include main // @version 0.3.3 // @note [20141128]兼容E10S // @note [20150206]添加connecting动画 // @note [20150404]尝试改善某些情况下的CPU占用 // @note [20150711]更新CSS linear-gradient(),radial-gradient()标准语法(nightly 150710)。 // ==/UserScript== location == "chrome://browser/content/browser.xul" && (function () { //Location Bar Enhancer5.1;Loading Bar0.3.0 var loadingBar = { progress: new WeakMap(), init: function () { if(document.getElementById('UCloadingBar')) return; var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(Services.io.newURI('data:text/css;base64,' + btoa((function () {/* @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @-moz-document url("chrome://browser/content/browser.xul"){ @keyframes UCloadingBarPulse { 0% {opacity:1} 50% {opacity:0} 100% {opacity:1} } @keyframes loadingBarConnecting { 0% {transform: translateX(300%)} 100% {transform: translateX(-300%)} } #UCloadingBar, #UCloadingBar[connecting]::after{ background-size: 100% 5px; background-repeat: repeat-x; height: 10px; } #UCloadingBar{ position: fixed; pointer-events:none; border-left:2px transparent; border-right:2px transparent; overflow: hidden; opacity:1; transform: translateX(-100%); background-image:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.25) 25%, rgba(254,178,53,1) 100%); width:100%; } #UCloadingBar:not([style*="translateX(-100%)"]){ transition: transform 800ms ease 0s; } #UCloadingBar:not([connecting])::after { display:none; } #UCloadingBar[connecting]::after { content:''; animation: loadingBarConnecting 2500ms infinite linear; background-image: radial-gradient(ellipse farthest-corner at center top, rgba(254,178,53, 1) 25%, rgba(255,255,255,0.25) 100%); width: 30%; position: absolute; } #UCloadingBar[connecting]{ background-image:none; } #UCloadingBar[complete]{ opacity:0; } #UCloadingBar[complete][style*="translateX(0%)"]{ transition: opacity 800ms ease 100ms; } #UCloadingBar[style]:not([connecting]):not([complete])::before{ content:''; position: absolute; top:-10px; right: 0px; width: 100px; height: 100%; box-shadow: 0px 0px 10px 3px rgba(254,178,53,1), 0px 0px 5px 2px rgba(254,178,53,1); transform: rotate(3deg) translate(0px, -4px); animation:UCloadingBarPulse 2s ease-out 0s infinite; } } */}).toString().replace(/^.+\s|.+$|\t+\/\/.*/g, '')), null, null), sss.USER_SHEET); var appcontent = document.getElementById('appcontent'), lb = document.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'hbox'); lb.id = 'UCloadingBar'; appcontent.insertBefore(lb, appcontent.firstChild); this.progressBar = lb; gBrowser.tabContainer.addEventListener('TabSelect', this, false); gBrowser.addTabsProgressListener(this); }, setConnecting: function(connecting){ if(connecting){ this.progressBar.hasAttribute('connecting') || this.progressBar.setAttribute('connecting', 'true'); }else{ this.progressBar.hasAttribute('connecting') && this.progressBar.removeAttribute('connecting'); } }, setComplete: function(complete){ if(complete){ this.progressBar.hasAttribute('complete') || this.progressBar.setAttribute('complete', 'true'); }else{ this.progressBar.hasAttribute('complete') && this.progressBar.removeAttribute('complete'); } return complete; }, handleEvent: function (e) { if (e.type == 'TabSelect') { this.onChangeTab(); } }, onChangeTab: function () { var cd = gBrowser.selectedBrowser, val = this.progress.get(cd); if (!val) { val = [0, false]; newTab = true; this.progress.set(cd, val); } if(!this.progressBar) return; this.setConnecting(val[1]); this.progressBar.style.transition = 'none'; if (val[0] > 0.95) { if(!this.setComplete(val[0] == 1)){ this.progressBar.style.transform = 'translateX(0%)'; } }else{ this.setComplete(false); this.progressBar.style.transform = 'translateX('+((!val[0] && val[1] ? 1 : val[0]) * 100 - 100) + '%)'; } setTimeout(function(){ this.progressBar.style.transition = ''; }.bind(this), 50); }, onProgressChange: function (aBrowser, webProgress, request, curSelfProgress, maxSelfProgress, curTotalProgress, maxTotalProgress) { var val = (curTotalProgress - 1) / (maxTotalProgress - 1); if (!/^((ht|f)tps?\:|about:blank)/.test((aBrowser.registeredOpenURI || {asciiSpec: 'about:blank'}).asciiSpec)){ return this.progress.set(aBrowser, [val, false]); } this.progress.set(aBrowser, [val, false]); if (this.progressBar && gBrowser.selectedBrowser === aBrowser) { this.setConnecting(false); if (val > 0.95) { this.progressBar.style.transform = 'translateX(0%)'; }else{ this.progressBar.style.transform = 'translateX('+((val * 100) - 100) + '%)'; } } }, onStateChange: function (aBrowser, aWebProgress, aRequest, aStateFlags, aStatus) { var val = this.progress.get(aBrowser), isCBrowser = gBrowser.selectedBrowser === aBrowser; if(!val){ val = [0, false]; this.progress.set(aBrowser, val); } if (aStateFlags & 1 && aStateFlags & 262144){ if (!(aStateFlags & 16777216)){ val = [0, /^((ht|f)tps?\:|about:blank)/.test((aBrowser.registeredOpenURI || {asciiSpec: 'about:blank'}).asciiSpec)]; if(isCBrowser) { this.progressBar.style.transform = 'translateX(0%)'; val[1] && this.setComplete(false); this.setConnecting(val[1]); } this.progress.set(aBrowser, val); } }else if(aStateFlags & 16){ if(isCBrowser) { this.timer(function(){ this.progress.get(aBrowser)[0] == 1 && this.setComplete(true); }.bind(this), 1000); this.setConnecting(false); } this.progress.set(aBrowser, [1, false]); } }, timer: function (callback, delay) { delay = delay || 0; var stopTimer = function (){ if (this._timer == null) return; clearTimeout(this._timer); this._timer = null; }.bind(this); this._timer = setTimeout(function(){ stopTimer(); callback(); }, delay); } }; loadingBar.init(); })();
-
Also bei mir funktioniert das Skript noch und zwar ganz ohne jedwede Änderungen, die erst ab Fx 69 so richtig greifen:
JavaScript
Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; try { CustomizableUI.createWidget({ id: 'about-toolbarbutton', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); var attrs = { id: 'about-toolbarbutton', class: 'chromeclass-toolbar-additional', type: 'menu', removable: true, label: 'Strony about wočinić', tooltiptext: 'Strony about wočinić' }; for (var a in attrs) toolbaritem.setAttribute(a, attrs[a]); return toolbaritem; } }); } catch(e) { }; var css = '\ #about-toolbarbutton {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAvdJREFUeNp8U1tIVFEUXefOnTuj+EpFJTEETSQKogdkBBYRIWERBoZ9BRlYQhj9mH75kUlg9mlhJUEgGZmRRWrkKx+NlD0U0zRmeljojKPjzJ37Ou17nfoQ6Vw253DuWevsddberKbxIRjnrZyjiIODARQMNgEQuN7ijss9KXCDdjnWDoExiIZhtGZu2liUmpIMzlcJRAK/mdMxOS8XM1kpXgs2zwiCAElkj1F14z5fDmvctyxz75JszSvBMC+5Ncx1YlQiEY6EuVb56ihtdnHKgCOsaBiZcFtpmmlJNgZO+xrt1PbNYUtqAtKTnNbV3/0cn+f9uLw7wTxtStCh6TqSExIJTGeIwG7qZ17IJL1waxpa37nhDTjBPnTDM/kRjNJvHs+Bg2cTAcnTNB2d/SOki1kkIjM1JsGgufXtV5zZl4k7d1twMCsFp05UYnHRj5npaXgGhyDCMKBqGgry91gEzCJgGOuaAilBxYFMa1anXNhccAGd3a8w/mkcqhyE3Wa6QEoUkvC81/VPggmI4U6U3x4lO4lUEJHhlBAIBpG4IRErAT/md5QitPCj3bQRiqKiYH/eag2wiE1ELLEgmu61oa76/K72By0ukbTHxsZADmtIdt2EKNqOimQ+STDQ+XrYun2VwPw4juzNRYeSjMKWiZKd2xHyBgJRkiShuroSuqqjvqHBsDKQNRW52WlWidiYSC7Y4RAMVPW4MRudjabDuRev9c/gkDz2q3tgJBU28+mM6YGBvkuiWaRKWLWcsO4mcO3gZsyGTmNRqkB/2TacbfMgNS4OjUPCQOh6/ZVIQYYovlguKASOcsZjRfbB6YhGVd44jnf7MWiCH3mQHichGPQhNtoR47jaP1qx3AGVHtYsfIGTZp2KKawuUQ/YEFK84EyhalRR/nQO6fFOhIJ+jL13vfhdc+ycHYb1wCyShiivLPc8edabbzbS30ZxMAM5LA2eb8C83YaFn+6Xc3UlZRm1XTPhdRoriyIB/x8+ipn1fvwRYABPz3B9ncIrWwAAAABJRU5ErkJggg==)}\ #about-toolbarbutton > dropmarker {display: none}\ '; var stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"'); document.insertBefore(stylesheet, document.documentElement); var menu, menuitem, menuseparator, menupopup; // menupopup of toolbarbutton menupopup = document.createElement('menupopup'); menupopup.id = "about-button-popup"; document.getElementById('about-toolbarbutton').appendChild(menupopup); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:about"); menuitem.setAttribute('tooltiptext', "about:about wočinić"); menuitem.setAttribute('accesskey', "o"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:about", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:addons"); menuitem.setAttribute('tooltiptext', "about:addons wočinić"); menuitem.setAttribute('accesskey', "a"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:addons", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:buildconfig"); menuitem.setAttribute('tooltiptext', "about:buildconfig wočinić"); menuitem.setAttribute('accesskey', "b"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:buildconfig", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:cache"); menuitem.setAttribute('tooltiptext', "about:cache wočinić"); menuitem.setAttribute('accesskey', "c"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:cache", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:config"); menuitem.setAttribute('tooltiptext', "about:config wočinić"); menuitem.setAttribute('accesskey', "g"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:config", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:crashes"); menuitem.setAttribute('tooltiptext', "about:crashes wočinić"); menuitem.setAttribute('accesskey', "r"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:crashes", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:containers"); menuitem.setAttribute('tooltiptext', "about:containers wočinić"); menuitem.setAttribute('accesskey', "r"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:preferences#containers", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:debugging"); menuitem.setAttribute('tooltiptext', "about:debugging wočinić"); menuitem.setAttribute('accesskey', "d"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:debugging", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:home"); menuitem.setAttribute('tooltiptext', "about:home wočinić"); menuitem.setAttribute('accesskey', "h"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:home", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:license"); menuitem.setAttribute('tooltiptext', "about:license wočinić"); menuitem.setAttribute('accesskey', "l"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:license", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:memory"); menuitem.setAttribute('tooltiptext', "about:memory wočinić"); menuitem.setAttribute('accesskey', "m"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:memory", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:networking"); menuitem.setAttribute('tooltiptext', "about:networking wočinić"); menuitem.setAttribute('accesskey', "w"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:networking", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:newtab"); menuitem.setAttribute('tooltiptext', "about:newtab wočinić"); menuitem.setAttribute('accesskey', "n"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:newtab", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:performance"); menuitem.setAttribute('tooltiptext', "about:performance wočinić"); menuitem.setAttribute('accesskey', "f"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:performance", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:plugins"); menuitem.setAttribute('tooltiptext', "about:plugins wočinić"); menuitem.setAttribute('accesskey', "P"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:plugins", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:preferences"); menuitem.setAttribute('tooltiptext', "about:preferences wočinić"); menuitem.setAttribute('accesskey', "e"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:preferences", "tab");'); menupopup.appendChild(menuitem); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:privatebrowsing"); menuitem.setAttribute('tooltiptext', "about:privatebrowsing wočinić"); menuitem.setAttribute('accesskey', "b"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:privatebrowsing", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:profiles"); menuitem.setAttribute('tooltiptext', "about:profiles wočinić"); menuitem.setAttribute('accesskey', "l"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:profiles", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:serviceworkers"); menuitem.setAttribute('tooltiptext', "about:serviceworkers wočinić"); menuitem.setAttribute('accesskey', "v"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:serviceworkers", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:studies"); menuitem.setAttribute('tooltiptext', "about:studies wočinić"); menuitem.setAttribute('accesskey', "i"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:studies", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:support"); menuitem.setAttribute('tooltiptext', "about:support wočinić"); menuitem.setAttribute('accesskey', "u"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:support", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:sync-log"); menuitem.setAttribute('tooltiptext', "about:sync-log wočinić"); menuitem.setAttribute('accesskey', "l"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:sync-log", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:telemetry"); menuitem.setAttribute('tooltiptext', "about:telemetry wočinić"); menuitem.setAttribute('accesskey', "t"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:telemetry", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:url-classifier"); menuitem.setAttribute('tooltiptext', "about:url-classifier wočinić"); menuitem.setAttribute('accesskey', "s"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:url-classifier", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.setAttribute('label', "about:welcome"); menuitem.setAttribute('tooltiptext', "about:welcome wočinić"); menuitem.setAttribute('accesskey', "w"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:welcome", "tab");'); menupopup.appendChild(menuitem); // submenu of context menu menu = document.createElement('menu'); menu.id = "context-about-menu"; menu.setAttribute('label', "Strony about wočinić"); menu.setAttribute('accesskey', "o"); document.getElementById('contentAreaContextMenu') .insertBefore(menu, document.getElementById('context-sep-viewbgimage').nextSibling); menupopup = document.createElement('menupopup'); menu.appendChild(menupopup); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:about"; menuitem.setAttribute('label', "about:about"); menuitem.setAttribute('tooltiptext', "about:about wočinić"); menuitem.setAttribute('accesskey', "o"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:about", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:addons"; menuitem.setAttribute('label', "about:addons"); menuitem.setAttribute('tooltiptext', "about:addons wočinić"); menuitem.setAttribute('accesskey', "a"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:addons", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:buildconfig"; menuitem.setAttribute('label', "about:buildconfig"); menuitem.setAttribute('tooltiptext', "about:buildconfig wočinić"); menuitem.setAttribute('accesskey', "b"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:buildconfig", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about-cache"; menuitem.setAttribute('label', "about:cache"); menuitem.setAttribute('tooltiptext', "about:cache wočinić"); menuitem.setAttribute('accesskey', "c"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:cache", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about-config"; menuitem.setAttribute('label', "about:config"); menuitem.setAttribute('tooltiptext', "about:config wočinić"); menuitem.setAttribute('accesskey', "g"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:config", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about-crashes"; menuitem.setAttribute('label', "about:crashes"); menuitem.setAttribute('tooltiptext', "about:crashes wočinić"); menuitem.setAttribute('accesskey', "r"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:crashes", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about-containers"; menuitem.setAttribute('label', "about:containers"); menuitem.setAttribute('tooltiptext', "about:containers wočinić"); menuitem.setAttribute('accesskey', "r"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:preferences#containers", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:debugging"; menuitem.setAttribute('label', "about:debugging"); menuitem.setAttribute('tooltiptext', "about:debugging wočinić"); menuitem.setAttribute('accesskey', "d"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:debugging", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:home"; menuitem.setAttribute('label', "about:home"); menuitem.setAttribute('tooltiptext', "about:home wočinić"); menuitem.setAttribute('accesskey', "h"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:home", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:license"; menuitem.setAttribute('label', "about:license"); menuitem.setAttribute('tooltiptext', "about:license wočinić"); menuitem.setAttribute('accesskey', "n"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:license", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:memory"; menuitem.setAttribute('label', "about:memory"); menuitem.setAttribute('tooltiptext', "about:memory wočinić"); menuitem.setAttribute('accesskey', "m"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:memory", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:networking"; menuitem.setAttribute('label', "about:networking"); menuitem.setAttribute('tooltiptext', "about:networking wočinić"); menuitem.setAttribute('accesskey', "w"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:networking", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:newtab"; menuitem.setAttribute('label', "about:newtab"); menuitem.setAttribute('tooltiptext', "about:newtab"); menuitem.setAttribute('accesskey', "w"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:newtab", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:performance"; menuitem.setAttribute('label', "about:performance"); menuitem.setAttribute('tooltiptext', "about:performance wočinić"); menuitem.setAttribute('accesskey', "f"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:performance", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about-plugins"; menuitem.setAttribute('label', "about:plugins"); menuitem.setAttribute('tooltiptext', "about:plugins wočinić"); menuitem.setAttribute('accesskey', "P"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:plugins", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:preferences"; menuitem.setAttribute('label', "about:preferences"); menuitem.setAttribute('tooltiptext', "about:preferences wočinić"); menuitem.setAttribute('accesskey', "e"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:preferences", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:privatebrowsing"; menuitem.setAttribute('label', "about:privatebrowsing"); menuitem.setAttribute('tooltiptext', "about:privatebrowsing wočinić"); menuitem.setAttribute('accesskey', "r"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:privatebrowsing", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:profiles"; menuitem.setAttribute('label', "about:profiles"); menuitem.setAttribute('tooltiptext', "about:profiles wočinić"); menuitem.setAttribute('accesskey', "l"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:profiles", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:serviceworkers"; menuitem.setAttribute('label', "about:serviceworkers"); menuitem.setAttribute('tooltiptext', "about:serviceworkers wočinić"); menuitem.setAttribute('accesskey', "v"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:serviceworkers", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:studies"; menuitem.setAttribute('label', "about:studies"); menuitem.setAttribute('tooltiptext', "about:studies wočinić"); menuitem.setAttribute('accesskey', "i"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:studies", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:support"; menuitem.setAttribute('label', "about:support"); menuitem.setAttribute('tooltiptext', "about:support wočinić"); menuitem.setAttribute('accesskey', "u"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:support", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:sync-log"; menuitem.setAttribute('label', "about:sync-log"); menuitem.setAttribute('tooltiptext', "about:sync-log wočinić"); menuitem.setAttribute('accesskey', "l"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:sync-log", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:telemetry"; menuitem.setAttribute('label', "about:telemetry"); menuitem.setAttribute('tooltiptext', "about:telemetry wočinić"); menuitem.setAttribute('accesskey', "t"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:telemetry", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:url-classifier"; menuitem.setAttribute('label', "about:url-classifier"); menuitem.setAttribute('tooltiptext', "about:url-classifier wočinić"); menuitem.setAttribute('accesskey', "s"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:url-classifier", "tab");'); menupopup.appendChild(menuitem); menuitem = document.createElement('menuitem'); menuitem.id = "context-about:welcome"; menuitem.setAttribute('label', "about:welcome"); menuitem.setAttribute('tooltiptext', "about:welcome wočinić"); menuitem.setAttribute('accesskey', "w"); menuitem.setAttribute('oncommand', 'openTrustedLinkIn("about:welcome", "tab");'); menupopup.appendChild(menuitem); })();
Auf die Schnelle habe ich hier die Texte nur in Sorbisch.
-
::before und ::after wird schon lange benutzt in diversen Codes:
Es ging ja speziell um den Fall in diesem Thread, nicht darum, dass die beiden Pseudoelemente sonst nicht benutzt werden, Im Gegenteil, sie werden doch recht häufig benutzt.
-
Auch die Browserwerkzeuge haben wie gesagt einen Picker, mit dem sich Elemente der Browseroberfläche auswählen lassen. In der Regel funktioniert das auch, wenn auch nicht in diesem Fall.
Ja, der ist da, war aber ausgegraut.