Feed Button in URL-bar (XUL) funktioniert bei mir, Move Feed Button to URL-bar (JS) leider nicht.
Woran kann das liegen?
Beiträge von bege
-
-
Trägt das hier
https://www.camp-firefox.de/forum/viewtopi…45af149#p920340
zur Diskussion um fehlende Buttons bei? -
Zitat von bege
Dumm nur, dass PM die Buttons hier nicht nur clont sondern auch von der Toolbar klaut, selbst wenn sie gar nicht in PM verwendet werden sollen... Da scheint bei Add-on- und Script-Buttons was unterschiedlich zu laufen.Hallo aborix,
ich habe im Forum für PM das Problem geschildert
http://forums.mozillazine.org/viewtopic.php?…77801#p13577801
und diese Antwort bekommen:
Please try to update your script to use the API of CustomizableUI.jsm.
https://developer.mozilla.org/en-US/docs/Moz…tomizableUI.jsmKannst du damit was anfangen?
-
Zitat von aborix
Der Tooltip wird übrigens ebenfalls nicht aktualisiert.
Wenn wir schon ein Zusatzskript haben, dann bauen wir das doch auch ein:Bei mir wird der Tooltip aktualisiert.
Ich hatte ihn zuerst im Zusatzscript, aber da wird er erst angezeigt, wenn der Button einmal gedrückt wurde. Im USL-Script wird er sofort angezeigt. -
Zitat von aborix
Andere Möglichkeiten sind:
- Einen Button nicht verschiebbar zu machen, sondern mit einer fixen Position versehen.
Der bleibt auch nach Neustart auf seinem Platz.
- Einen verschiebbaren Button mit Custom Buttons erstellen.
Wie PM diese Buttons behandelt, habe ich nicht getestet.Für das richtige Symbol des USL-Buttons im PM-Menü habe ich folgendes Skript, das zusätzlich zum USL-Skript installiert werden muß:
Hut ab, aborix, meine Hochachtung :klasse:
Du bist ja ein echter JS-Künstler. Kannst du mir in Kürze erklären, warum das USL-Script den Button im PM nicht aktualisieren kann und ein zweites Script dafür nötig ist?Ich habe mich dafür entschieden, den WHT-Button fix auf der Addon-Leiste zu lassen, und den USL-Button ins PM-Menü zu verschieben.
Das sieht jetzt so aus:[attachment=1]Screenshot_092.png[/attachment]
und im Einstellungsmenü so:
[attachment=0]Screenshot_093.png[/attachment]
Dazu habe ich im USL-Skript dem verschiebbaren Button noch ein Label verpasst und das seitliche Padding vergrößert, damit der Button nicht so am Rand klebt (bei mir sind das die Zeilen 560 und 561)
Und der Vollständigkeit halber habe ich in diesem Block noch variable Tooltips eingefügt - besser: mit viel Versuch und noch mehr Irrtum reingebastelt, bis es geklappt hat - (bei mir ab Zeile 503):
Code
Alles anzeigenvar DISABLED = true; USL.__defineGetter__("disabled", function() DISABLED); USL.__defineSetter__("disabled", function(bool){ if (bool) { this.icon.setAttribute("state", "disable"); gBrowser.mPanelContainer.removeEventListener(USL.eventName, this, false); this.icon.setAttribute("tooltiptext", "inaktiv: Linksclick aktiviert, Rechtsclick Menü"); } else { this.icon.setAttribute("state", "enable"); gBrowser.mPanelContainer.addEventListener(USL.eventName, this, false); this.icon.setAttribute("tooltiptext", "aktiv: Linksclick deaktiviert, Rechtsclick Menü"); } return DISABLED = bool; });
So, jetzt bin ich glücklich und zufrieden und dir sehr dankbar
-
Fortsetzung ...
[attachment=1]Screenshot_084_ergebnis.png[/attachment]
[attachment=0]Screenshot_085.png[/attachment] -
Zitat von aborix
Um den Fehler einzugrenzen, teste bitte zunächst folgendes:
Nimm nochmal ein neues Profil mit der Erweiterung userChromeJS und dem USL mit der Änderung von Beitrag 42. Keine weiteren Eweiterungen und Skripte.
Bleibt der USL-Button nach Neustart?
Ich weiß nicht, ob das jetzt verrückt oder peinlich ist oder beides. Nun hatte ich stundenlang getestet und hätte schwören können, dass die Buttons auch schon ohne Personal Menu verschwinden. Nun also mit dem x-ten neuen Profil getestet - und sie bleiben, beide, der von USL und WHT. Wird PM installiert, verschwinden sie, und zwar so:
Ist ein Button auf einer Toolbar, verschwindet er von der Toolbar und aus dem Anpassen-Dialog.
Ist ein Button nicht auf einer Toolbar, bleibt er im Anpassen-Dialog sichtbar.
In PM sind sie, wie schon geschrieben, immer verfügbar. Es sieht jetzt also so aus, als ob PM die Buttons ganz einfach "klaut".Der Entwickler schreibt: "PM just clones the unused toolbar buttons and places them into its menu. Other extensions may not suppose their buttons are treated in this way; or those buttons need to be initialized in some conditions, that PM will not know." http://forums.mozillazine.org/viewtopic.php?…13565&start=433
Dumm nur, dass PM die Buttons hier nicht nur clont sondern auch von der Toolbar klaut, selbst wenn sie gar nicht in PM verwendet werden sollen (so wie WHT, dass besser im Zugriff auf einer Toolbar bleibt). Da scheint bei Add-on- und Script-Buttons was unterschiedlich zu laufen.
Dass der USL Button in PM nicht blass wird im deaktivierten Zustand (bzw. anders herum), bleibt bestehen.
Zitat von aborixIch habe mir zum Testen Personal Menu installiert. Bei mir sind keine Buttons im Menü. Wie bekomme ich die hinein?
[attachment=2]Screenshot_081.png[/attachment]
[attachment=1]Screenshot_082_ergebnis.png[/attachment]
[attachment=0]Screenshot_083_ergebnis.png[/attachment]
Fortsetzung ... -
Vorherigen Beitrag editiert in Bezug auf das Neustart-Verhalten.
-
Zitat von aborix
Hast du außer dem Classical Theme Restorer noch andere Erweiterungen, die an Leisten und deren Elementen etwas verändern?
Ich habe es jetzt mit einem leeren Profil versucht: Nur userChrome.js-Addon und USL und WHT. Sowohl der USL als auch WHT funktionieren auch nach neuen Starts (also nacheinander Browser schließen und wieder starten) - aber nach einem Neustart verschwinden alle beweglichen Buttons von den Toolleisten wie beschrieben und sind auch nicht wieder auf die Toolleisten zu kriegen. Und zwar ist es egal, ob ich den Neustart mit dem Script RestartFirefox oder mit Application.restart() mache.
Dann habe ich PM hinzu installiert. Die verschwundenen Buttons sind in PM verfügbar, nicht aber im Firefox-Anpassen-Dialog. In einem nochmal neuen Profil hat auch ein Neustart mit dem Neustarten-Eintrag im PM das gleiche Ergebnis. Alles also im neuen Profil das gleiche wie in meinem Standardprofil.
Das müsste bei jemandem von euch doch auch schon passiert sein, oder habt ihr keine verschiebbaren Buttons in Verwendung? Der Vollständigkeit halber:
Ich benutze Firefox 29.0.1 unter Windows 7 Professional 64 bit SP1. Die userChrome.js-Addon-Version ist 1.5, PM 6.2. Mehr ist in dem neuen Profil ja nicht installiert.Eine weitere Frage: Wenn die Buttons ein mal von Toolleisten und Anpassen-Dialog verschwunden sind, kriege ich sie nicht wieder zurück. Weder localstore.rdf löschen (hat nur ein einziges Mal geklappt) noch userChrome.js-Addon deaktivieren und reaktivieren noch Neustart mit Cache löschen mit dem fixen RestartFirefox-Button helfen. Erst beim Anlegen eines neuen Profils erscheinen die Buttons wieder. Hast du eine Idee, wie ich die Buttons in meinem Standardprofil wieder zurück kriege?
Zitat von aborix
Hast du einen Link dazu?
"Toolbar-box is for fun only." http://forums.mozillazine.org/viewtopic.php?…689a2&start=438Das Verhalten der Buttons von WHT und USL in der PM Button Toolbar ist gleich geblieben. WHT ändert das Aussehen des Buttons je nach Aktivitätsstatus, der von USL ändert sich nicht (in einer normalen Toolbar schon, wie bereits geschrieben).
Liegt das an PM oder kann man etwas im USL-Script ändern? -
Leider war meine Begeisterung noch etwas verfrüht. :traurig:
Ich habe auch WordHighlightToolbar nach deinem Vorbild geändert und der Button ändert im PM sein Aussehen je nach Status. Es kann also nicht am PM liegen, dass der UserScriptLoader seinen Button (und Tooltip) im PM nicht ändert.
Das vorerst dicke Ende: Wenn die beiden Buttons in einer Toolbar platziert sind (ich habe die Navbar und die CTR Addon-bar probiert), verschwinden die Buttons nach einem Neustart auf nimmer wiedersehen. Sie sind weder auf der Toolbar noch im Anpassen-Modus zu finden. Im PM stehen sie aber noch zur Auswahl und sind dort auch verfügbar, was Addon-Buttons nur sind, wenn die nicht auf einer Toolbar platziert sind.
Neustart hilft nicht, weder mit noch ohne Löschen des Script-Caches. Deshalb hilft auch ein Deaktivieren der UserChrome.js-Erweiterung nichts.
Beim ersten mal konnte ich die Buttons wieder hervorzaubern, indem ich die localstore.rdf gelöscht habe. Danach waren sie wieder im Anpassen-Modus. Beim zweiten Versuch blieben sie aber auch dann verschwunden, so dass ich die Scripte erst mal wieder in den alten Stand zurückversetzt habe. -
Zitat von aborix
Teste bitte:
Die Zeilen 559 - 564 sind ersetzt durch:
Code
Alles anzeigenUSL.icon = document.createElement('toolbarbutton'); USL.icon.id = 'UserScriptLoader-icon'; USL.icon.className = 'toolbarbutton-1 chromeclass-toolbar-additional'; USL.icon.setAttribute('context', 'UserScriptLoader-popup'); USL.icon.setAttribute('onclick', 'USL.iconClick(event)'); USL.icon.style.padding = '0px 2px'; document.getElementById('navigator-toolbox').palette.appendChild(USL.icon); var toolbars = Array.slice(document.querySelectorAll('toolbar')); for (var i=0; i<toolbars.length; i++) { var currentset = toolbars[i].getAttribute('currentset'); if (currentset.split(',').indexOf(USL.icon.id) >= 0) { var j; if (i == 0) j = 1 else j = 0; toolbars[j].currentSet += ',' + USL.icon.id; toolbars[i].currentSet = currentset; }; };
Fantastisch :klasse:
In einer normalen Toolbar funktioniert es komplett.
Im Personal Menu ist die volle Funktion möglich, nur das Icon wechselt das Bild nicht. So kann man nicht erkennen, ob der Loader aktiviert oder deaktiviert ist. (Die prefs werden aber geändert.)
Falls das im PM nicht anders geht, kann ich damit leben. (Der Entwickler schrieb, dass die Button Toolbar ein "Spielzeug" sei, er also keine großen Ambitionen hat, dort alles zu ermöglichen.) Vermutlich wird der Button beim Start geladen und dann nicht mehr verändert. Auch ein vom Status abhängiger Tooltiptext, den ich eingefügt habe, ändert sich nicht. Der Status des Buttons entspricht dem Status des Loaders beim Start.Herzlichen Dank.
-
Zitat von Endor
Hallo bege.
Mit dem Userscriptloader Script, ist das nicht so einfach.
Das müsste man komplett umschreiben, das ist was für einen Profi.
Den musst Du leider so nehmen wie er ist. Man kann die Leiste wo er hin soll
ändern aber dann ist auch gleich mal Schluss.Danke, Endor. Ich hätte ihn halt gern im appmenu. Da umbauen in einen Menüeintrag nicht ging, hatte ich gehofft, den Button in die Toolbox von Personal Menu zu bekommen. Ich habe ihn zwar statt über einen verschiebbaren Button auch direkt dort zur Anzeige bekommen, aber funktionieren tut er da nicht richtig.
Na, ich sehe schon, das Äffchen bleibt in der Addon-Leiste, da kann er mich immer anlächeln und ist nicht im appmenu versteckt. :wink: -
Zitat von bege
Danke. Dann will ich das in den nächsten Tagen mal probieren.
Pffff! Ich geb's auf. :-???
Kann mir bitte jemand sagen, ob das mit dem User Script Loader überhaupt geht ohne das Script komplett umzubauen? Da ich kein Javascript kann, kann ich nur einfache Änderungen vornehmen.
Vielen Dank. -
-
Zitat von aborix
In Skripten für nicht verschiebbare Buttons werden diese Codes nicht verwendet.
Diese Codes, jeweils zusammen mit dem vorangehenden
legen den Button erst als verschiebbar fest.
Einem fix platzierten Button wird statt dessen seine Position zugewiesen, z.B. durch insertBefore oder appendChild.
Ja, danke. Ich wollte wissen, ob ich den Code in Skripte einbauen kann, um bisher fix platzierte Buttons beweglich zu machen. -
Zitat von aborix
Damit verschiebbare Buttons auch ab Fx 29 funktionieren, ist dieses Codestück:Codevar toolbars = document.querySelectorAll('toolbar'); Array.slice(toolbars).forEach( function (toolbar) { var currentset = toolbar.getAttribute('currentset'); if (currentset.split(',').indexOf(button.id) < 0) return; toolbar.currentSet = currentset; try { BrowserToolboxCustomizeDone(true); } catch (ex) { } });
durch dieses zu ersetzen:Code
Alles anzeigenvar toolbars = Array.slice(document.querySelectorAll('toolbar')); for (var i=0; i<toolbars.length; i++) { var currentset = toolbars[i].getAttribute('currentset'); if (currentset.split(',').indexOf(button.id) >= 0) { var j; if (i == 0) j = 1 else j = 0; toolbars[j].currentSet += ','+button.id; toolbars[i].currentSet = currentset; }; };
Der geänderte Code funktioniert auch in Fx 28.Kann man das auch in Skripten verwenden, in denen die Buttons nicht verschiebbar definiert sind? Falls ja, wie?
-
Ich habe nur den Skriptordner in der userchrome.js und darüber den Verzögerungseintrag.
Und hast du die 119 alle einzeln in der userchrome.js stehen?
-
Zitat von bege
Nachdem ich mit einem nicht funktionierenden Overlay versucht habe, im appmenu was zu ändern, wird Restart Firefox wieder angezeigt, bevor ich deinen Link probiert habe. Keine Ahnung, warum es jetzt geht, aber so lange es dabei bleibt, will ich zufrieden sein.
Ging wieder nicht. Liegt offensichtlich am laden der xul-Overlays. Im FF28 hatte ich das mit dem Verzögerungseintrag in der userchrome.js in den Griff bekommen, jetzt tritt das Problem wieder auf.
Ich habe jetzt erst mal das zweite xul-Overlay deaktiviert, das ich benutze, weil ich es nicht oft brauche (MoreAbout). So startet Restart Firefox zuverlässiger. -
Zitat von Endor
Memory Mod geht hier auch in der Addon-Leiste von CTR.
Teste mal meine Version: Download: http://dl.dropbox.com/u/15467633/Fir…rymonitor.uc.js
Vielen Dank. Nachdem ich das insertBefore-Ziel geändert habe, wirds bei mir auch angezeigtZitatdas selbe mit Restart Firefox.
Der wird hier, genau wie von Dir beschrieben angezeigt und funktioniert auch:
http://dl.dropbox.com/u/15467633/Fir…tFirefox.uc.xul
Nachdem ich mit einem nicht funktionierenden Overlay versucht habe, im appmenu was zu ändern, wird Restart Firefox wieder angezeigt, bevor ich deinen Link probiert habe. Keine Ahnung, warum es jetzt geht, aber so lange es dabei bleibt, will ich zufrieden sein.ZitatDer UserCSS Loader wird hier nur als Button angezeigt, im Appmenü hatte ich den noch nie.
Das hat mich auf die Spur gebracht: Im Script kann man ja einstellen, ob als Button oder Menü. Ich hatte Menü eingestellt. Tatsächlich steht im Script nichts vom Appmenü, sondern die Menüleiste. Das muss ich mal geändert haben und durch einen neuen Download ist das wohl wieder verschwunden. Wieder geändert, und es ist wie vorher
[attachment=0]Screenshot_058.png[/attachment]
Tausend Dank! -
Hallo,
ich habe mit dem Classic Theme Restorer und ein paar Anpassungen die Buttons und Panels der meisten Scripte wieder an ihren Platz bekommen. Diese Probleme gibt es hier noch:Restart Firefox: Wurde mit FF28 im Appmenu, Dateimenü und Addon-bar angezeigt. Jetzt wird es gar nicht mehr angezeigt. Anpassen der Leiste hilf nicht, die IDs der Menüs sind mit CTR gleich geblieben, in der Fehlerkonsole wird kein Fehler angezeigt.
User CSS Loader wurde mit FF28 außer in der Menüleiste auch im Appmenu angezeigt. Obwohl die ID des Appmenu mit CTR gleich geblieben ist, wird das User CSS Loader Menü dort nicht mehr angezeigt.
Kann mir jemand weiterhelfen? Danke.
Noch ein kleineres Problem: Das Panel von Memory Monitor Mod wird ohne Anpassung in der Navigationsleiste angezeigt. Das Verschieben auf die Addon-Leiste von CTR funktioniert nicht, nur in die Statusbar innerhalb dieser Leiste. Ich hätte es lieber direkt auf der Leiste (also ctraddon_addon-bar statt status-bar). Geht aber nicht.