wenn ich about:config eingebe erscheint der zu suchende Eintrag überhaut nicht.
es werden nur prefs.js angezeigt
Öhm
Also so muss das aussehen
wenn ich about:config eingebe erscheint der zu suchende Eintrag überhaut nicht.
es werden nur prefs.js angezeigt
Öhm
Also so muss das aussehen
Den Scriptcache zu löschen bringt nur was bei Änderungen an einem Script, hier aber geht es um CSS-Code.
Gerade getestet. Dein CSS-Code aus Beitrag #15 funktioniert bei mir nicht, der CSS-Code von 2002Andreas aus dem Beitrag #3 aber schon.
Gib mal about:config in die Adressleiste ein, dann Enter und suche dort nach dem Eintrag toolkit.legacyUserProfileCustomizations.stylesheets, dort muss der Schalter auf true stehen, wenn dort false steht einfach ein Doppelklich drauf.
Eventuell ist ja aber auch beim kopieren etwas schiefgelaufen. Versuche es einfach nochmal, in dem Code-Kasten rechts oben auf die 2 geknickten Blätter klicken, dann in das aufgehende Kästchen 2x reinklicken zum markieren und dann kopieren.
Ich gebe auf, klappt einfach nicht, schade die grauen Ordner sehen einfach nur Sche**e aus!
Wir waren ja noch gar nicht fertig! Warum gibt du also auf? Hast du denn nun das so, wie ich das in den Beiträgen #29 und #30 beschrieben habe?
Ja, in dem chrome Ordner ist eine userChrome.css Datei mit folgendem Inhalt:
.bookmark-item[container],treechildren::-moz-tree-image(container) {fill: orange !important;}
und ein CSS Ordner mit einer lesezeichen_orange.css Datei mit folgendem Inhalt:
Auch wenn es etwas doppelgemoppelt und unorganisiert ausschaut, aber allein mit dem Eintrag .bookmark-item[container],treechildren::-moz-tree-image(container) {fill: orange !important;} in der userChrome.css sollte er doch eigentlich schon orange Ordner haben (!?) denn der Code funktioniert ja. Wenn er sie nicht hat stimmt ja schon mal was nicht, da wird es mit dem CSS-Ordner und dem @import-Befehl wahrscheinlich ja auch nicht wirklich funktionieren, denke ich mir
var tab_hover = {
event:null,
tid:null,
getTab: function(element) {
while (element && element.localName != 'tab') {
element = element.parentNode;
};
return element;
},
onLoad: function() {
gBrowser.tabContainer.addEventListener("mouseout", tab_hover.onMouseOut, false);
gBrowser.tabContainer.addEventListener("mouseover", tab_hover.onMouseOver, false);
},
onUnload: function() {
gBrowser.tabContainer.removeEventListener("mouseover", tab_hover.onMouseOver, false);
gBrowser.tabContainer.removeEventListener("mouseout", tab_hover.onMouseOut, false);
},
onMouseOver: function(event) {
tab_hover.event = event.target;
tab_hover.tid = setTimeout(function() {
gBrowser.selectedTab = tab_hover.getTab(tab_hover.event);
}, 250);
},
onMouseOut: function() {
clearTimeout(tab_hover.tid);
}
};
tab_hover.onLoad();
Alles anzeigen
wurde in diesem Thread FF 62 Hover Effekt für Tabwechsel weg! händeringend gesucht
Habe dort mal auf Dein Skript hier verwiesen.
Ich hatte das gleiche Script und funktionierte unter der 69.0 nicht mehr.
Nun bin ich hier auf Dein Skript gestossen und habe festgestellt das in meinem Skript die Zeilen 5 bis 10 fehlten.
Damit funktioniert es wieder, vielen Dank
Ich meine dieses Skript. Das hattest Du 2017 hier gepostet.
Code Alles anzeigenvar tab_hover={ event:null, tid:null, onLoad: function() { gBrowser.tabContainer.addEventListener("mouseout", tab_hover.onMouseOut, false); gBrowser.tabContainer.addEventListener("mouseover", tab_hover.onMouseOver, false); }, onUnload: function() { gBrowser.tabContainer.removeEventListener("mouseover", tab_hover.onMouseOver, false); gBrowser.tabContainer.removeEventListener("mouseout", tab_hover.onMouseOut, false); }, onMouseOver: function(event) { tab_hover.event=event.target; tab_hover.tid=setTimeout( function(){ gBrowser.selectedTab=tab_hover.event; } , 250); }, onMouseOut: function() { clearTimeout(tab_hover.tid); } }; tab_hover.onLoad();
Hab das gleiche Skript. Unter der 69.0 geht es bei mir nur noch wenn ich die minimale obere tabline berühre, direkt auf der Tabfläche geht es nicht mehr. Da können wir wohl nur hoffen das unser Experte aborix mal hier reinschaut.
Ok. Danke für Deine Hilfe und die erneute Horizonterweiterung
Danke Andreas,
auf die Idee mit border kam ich gar nicht
Funktioniert und passt!
Nur mal als Verständnisfrage: Kann man das nur mit border ansprechen oder auch mit .tabline?
Weil die .tabline wird ja so angesprochen
Der Tabhintergrund bei inaktiven Tabs so
Jetzt dachte ich für die Tabline bei inaktiven Tabs so
.tabbrowser-tab:not([selected]) .tab-line {
height: 2px !important;
background-color: red!important;
}
Oder geht das nur über border?
Einen schönen Sonntag in die Runde
Ich habe mit einer CSS-Anweisung die nicht aktiven Tabs eingefärbt
Den aktiven Tab hab ich mit einer Tabline versehen. Ist es möglich die inaktiven Tabs auch mit einer Tabline zu versehen?
Meine Versuche diesbezüglich scheiterten alle. Weiss auch nicht ob ich es wirklich nutzen würde aber zu wissen ob und wie
wäre eine weitere Erfahrung mehr im grossen Feuerfuchs-Abenteuer
Bei mir funktioniert es wieder beim laden von allen Seiten, allerdings nur in einem neuen Tab. Beim reload oder laden von Seiten im selben Tab geht es nicht, hatte ja auch Andredd1 schon geschrieben. Wobei ich mich gerade frage wieso es bei ihm noch funktionierte?
Da ich aber jede Seite in einem neuen Tab lade ist diese Version für mich perfekt.
Für alle Interessierten hier nochmal der komplette Code, die Farben und das Verlaufsmuster kann man sich in Zeile 7 anpassen.
/* LoadingBar.uc.js */
(function(){
//Location Bar Enhancer5.1;Loading Bar0.3.0
var cssStr = (function(){/*
#urlbar {
background-image: repeating-linear-gradient(-45deg, rgba(255,255,255,0), rgba(255,255,255,0) 6px, rgba(255,255,255,1) 6px, rgba(255,255,255,1) 12px), linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(17,238,238,.7) 100%);
background-size:0 0;
background-repeat:repeat-x, no-repeat;
transition: background-size 350ms ease 0s !important;
}
#urlbar:not([style="background-size: 0% 100%;"]) {
animation: progress-bar-stripes 2s linear infinite;
}
@-moz-keyframes progress-bar-stripes {
from {
background-position: 0, 0;
}
to {
background-position: 51px 0, 0;
}
}
*/}).toString().replace(/^.+\s|.+$/,"");
var style = document.createProcessingInstruction("xml-stylesheet", "type=\"text/css\"" + " href=\"data:text/css;base64," + btoa(cssStr) + "\"");
var mainW = document.getElementById("main-window");
document.insertBefore(style, mainW);
function main(window) {
var {document, gBrowser} = window;
function $(id) { return document.getElementById(id) };
var urlbar = $("urlbar");
let pageProgress = 0;
let async = makeWindowHelpers(window).async;
var LoadingBar = {
listener: {
onChangeTab: function(e) {
urlbar.style.backgroundSize = '0% 100%';
pageProgress = 0;
},
onProgressChange: function(aBrowser,webProgress,request,curSelfProgress,maxSelfProgress,curTotalProgress,maxTotalProgress) {
if (gBrowser.contentDocument === aBrowser.contentDocument) {
var val = (curTotalProgress-1)/(maxTotalProgress-1);
pageProgress = val;
urlbar.style.backgroundSize = (100*val) + '% 100%';
if (val > 0.9)
async(function() {
if (pageProgress > 0.95)
urlbar.style.backgroundSize = '100% 100%';
}, 1000);
}
},
onStateChange: function() {
if (pageProgress > 0.95){
async(function() {
urlbar.style.backgroundSize = '0% 100%';
pageProgress = 0;
}, 1000);
}else{
urlbar.style.backgroundSize = '0% 100%';
}
}
}
};
gBrowser.tabContainer.addEventListener('TabSelect',LoadingBar.listener.onChangeTab,false);
gBrowser.addTabsProgressListener(LoadingBar.listener);
unload(function() {
gBrowser.tabContainer.removeEventListener('TabSelect',LoadingBar.listener.onChangeTab,false);
gBrowser.removeTabsProgressListener(LoadingBar.listener);
}, window);
}
watchWindows(main, "navigator:browser");
function runOnLoad(window, callback, winType) {
window.addEventListener("load", function() {
window.removeEventListener("load", arguments.callee, false);
if (window.document.documentElement.getAttribute("windowtype") == winType)
callback(window);
}, false);
}
function runOnWindows(callback, winType) {
function watcher(window) {
try {
callback(window);
}
catch(ex) {}
}
let browserWindows = Services.wm.getEnumerator(winType);
while (browserWindows.hasMoreElements()) {
let browserWindow = browserWindows.getNext();
if (browserWindow.document.readyState == "complete")
watcher(browserWindow);
else
runOnLoad(browserWindow, watcher, winType);
}
}
function watchWindows(callback, winType) {
function watcher(window) {
try {
callback(window);
}
catch(ex) {}
}
runOnWindows(callback, winType);
function windowWatcher(subject, topic) {
if (topic == "domwindowopened")
runOnLoad(subject, watcher, winType);
}
Services.ww.registerNotification(windowWatcher);
unload(function() { Services.ww.unregisterNotification(windowWatcher) });
}
function unload(callback, container) {
let unloaders = unload.unloaders;
if (unloaders == null)
unloaders = unload.unloaders = [];
if (callback == null) {
unloaders.slice().forEach(function(unloader) { unloader() });
unloaders.length = 0;
return null;
}
if (container != null) {
container.addEventListener("unload", removeUnloader, false);
let origCallback = callback;
callback = function() {
container.removeEventListener("unload", removeUnloader, false);
origCallback();
}
}
function unloader() {
try {
callback();
}
catch(ex) {}
}
unloaders.push(unloader);
function removeUnloader() {
let index = unloaders.indexOf(unloader);
if (index != -1)
unloaders.splice(index, 1);
}
return removeUnloader;
}
function makeWindowHelpers(window) {
let {clearTimeout, setTimeout} = window;
function async(callback, delay) {
delay = delay || 0;
let timer = setTimeout(function() {
stopTimer();
callback();
}, delay);
function stopTimer() {
if (timer == null)
return;
clearTimeout(timer);
timer = null;
}
}
return {
async: async,
};
}
})();
Alles anzeigen
@ aborix und Sören!
Funktioniert auch wieder mit Fx 68.0!
Superklasse, vielen Dank euch beiden
Verständnisfrage an alle:
Wird bei einer Firefox-Aktualisierung auch grundsätzlich ein neues Profil angelegt oder nur bei einer Installation einer neuen Firefoxversion?
Bei einer Aktualisierung bleibt mein Profil bestehen, wird also kein neues angelegt. Anders bei einer Neuinstallation oder eben über den Profilmanager.
Da müssen wir wahrscheinlich auf aborix warten, er ist unser JavaScript-Spezialist.
Ok, dann warten wir mal auf aborix, vielleicht schaut er ja mal rein. Wenn nicht, werde ich nicht sterben, ein bischen Schwund ist halt immer
Danke für Deine Mühe
Hallo milupo, danke für Deine Rückmeldung!
Bei Deinem Code handelt es sich um den langen schmalen Balken oben im Webfenster. Der funktioniert bei mir auch.
Mein Code erzeugte ein farbliches Verlaufsmuster in der url-bar, bzw. zeigte es mir bis Version 67.0.4
/* LoadingBar.uc.js */
(function(){
//Location Bar Enhancer5.1;Loading Bar0.3.0
var cssStr = (function(){/*
#urlbar {
background-image: -moz-repeating-linear-gradient(top -45deg, rgba(255,255,255,0), rgba(255,255,255,0) 6px, rgba(255,255,255,1) 6px, rgba(255,255,255,1) 6px), -moz-linear-gradient(left, rgba(0, 255, 255) 0%, rgba(0,255,0) 100%);
background-size:0 0;
background-repeat:repeat-x, no-repeat;
transition: background-size 350ms ease 0s !important;
}
#urlbar:not([style="background-size: 0% 100%;"]) {
animation: progress-bar-stripes 2s linear infinite;
}
@-moz-keyframes progress-bar-stripes {
from {
background-position: 0, 0;
}
to {
background-position: 51px 0, 0;
}
}
*/}).toString().replace(/^.+\s|.+$/,"");
var style = document.createProcessingInstruction("xml-stylesheet", "type=\"text/css\"" + " href=\"data:text/css;base64," + btoa(cssStr) + "\"");
var mainW = document.getElementById("main-window");
document.insertBefore(style, mainW);
function main(window) {
var {document, gBrowser} = window;
function $(id) { return document.getElementById(id) };
var urlbar = $("urlbar");
let pageProgress = 0;
let async = makeWindowHelpers(window).async;
var LoadingBar = {
listener: {
onChangeTab: function(e) {
urlbar.style.backgroundSize = '0% 100%';
pageProgress = 0;
},
onProgressChange: function(aBrowser,webProgress,request,curSelfProgress,maxSelfProgress,curTotalProgress,maxTotalProgress) {
if (gBrowser.contentDocument === aBrowser.contentDocument) {
var val = (curTotalProgress-1)/(maxTotalProgress-1);
pageProgress = val;
urlbar.style.backgroundSize = (100*val) + '% 100%';
if (val > 0.9)
async(function() {
if (pageProgress > 0.95)
urlbar.style.backgroundSize = '100% 100%';
}, 1000);
}
},
onStateChange: function() {
if (pageProgress > 0.95){
async(function() {
urlbar.style.backgroundSize = '0% 100%';
pageProgress = 0;
}, 1000);
}else{
urlbar.style.backgroundSize = '0% 100%';
}
}
}
};
gBrowser.tabContainer.addEventListener('TabSelect',LoadingBar.listener.onChangeTab,false);
gBrowser.addTabsProgressListener(LoadingBar.listener);
unload(function() {
gBrowser.tabContainer.removeEventListener('TabSelect',LoadingBar.listener.onChangeTab,false);
gBrowser.removeTabsProgressListener(LoadingBar.listener);
}, window);
}
watchWindows(main, "navigator:browser");
function runOnLoad(window, callback, winType) {
window.addEventListener("load", function() {
window.removeEventListener("load", arguments.callee, false);
if (window.document.documentElement.getAttribute("windowtype") == winType)
callback(window);
}, false);
}
function runOnWindows(callback, winType) {
function watcher(window) {
try {
callback(window);
}
catch(ex) {}
}
let browserWindows = Services.wm.getEnumerator(winType);
while (browserWindows.hasMoreElements()) {
let browserWindow = browserWindows.getNext();
if (browserWindow.document.readyState == "complete")
watcher(browserWindow);
else
runOnLoad(browserWindow, watcher, winType);
}
}
function watchWindows(callback, winType) {
function watcher(window) {
try {
callback(window);
}
catch(ex) {}
}
runOnWindows(callback, winType);
function windowWatcher(subject, topic) {
if (topic == "domwindowopened")
runOnLoad(subject, watcher, winType);
}
Services.ww.registerNotification(windowWatcher);
unload(function() { Services.ww.unregisterNotification(windowWatcher) });
}
function unload(callback, container) {
let unloaders = unload.unloaders;
if (unloaders == null)
unloaders = unload.unloaders = [];
if (callback == null) {
unloaders.slice().forEach(function(unloader) { unloader() });
unloaders.length = 0;
return null;
}
if (container != null) {
container.addEventListener("unload", removeUnloader, false);
let origCallback = callback;
callback = function() {
container.removeEventListener("unload", removeUnloader, false);
origCallback();
}
}
function unloader() {
try {
callback();
}
catch(ex) {}
}
unloaders.push(unloader);
function removeUnloader() {
let index = unloaders.indexOf(unloader);
if (index != -1)
unloaders.splice(index, 1);
}
return removeUnloader;
}
function makeWindowHelpers(window) {
let {clearTimeout, setTimeout} = window;
function async(callback, delay) {
delay = delay || 0;
let timer = setTimeout(function() {
stopTimer();
callback();
}, delay);
function stopTimer() {
if (timer == null)
return;
clearTimeout(timer);
timer = null;
}
}
return {
async: async,
};
}
})();
Alles anzeigen
Hallo Schraubergemeinde,
seit dem Update auf 68.0 funktioniert bei mir das Skript LoadingBar.uc.js nicht mehr. Kann das jemand bestätigen?
Hab die letzte Version von hier https://github.com/ardiman/userCh…ster/loadingbar.
Könnte da jemand von den Spezialisten mal reinschauen?
Ein Hallo in die Runde!
Wie man auf dem vergrösserten Bild beim genauen hinschauen erkennen kann ist der Tab- und- Toolbarhintergrund aufgrund eines Theme mit dünnen waagrechten Linien durchzogen.
Ist es irgendwie möglich diese waagrechten Linien auch auf dem Hoverhintergrund der Lesezeichenliste darzustellen?
Ist nicht überlebenswichtig, wäre aber cool wenn's machbar wäre.
[attachment=0]Zwischenablage01.jpg[/attachment]
Habe mich einfach an meine Signatur gehalten und Zitronellas Link gefunden :wink:
Danke an das Mozilla-Team und alle Helfenden hier im Forum :klasse:
Hallo aborix!
Wie milupo kann auch ich bestätigen das es funktioniert.
Passt perfekt, vielen Dank! :klasse:
Hallo und österliche Grüsse,
ich nutze folgendes Script
(function() {
function doDatClock() {
var timestr = new Date().toLocaleDateString( locale , options );
if( count == 1 ) {
var counter = new Date( 1000 * sec ).toISOString().substr( 11 , 8 ); // .replace(/^[0:]+/, '') // if you want to replace zeroes and colons
timestr = timestr + ' (' + counter + ')';
sec++;
}
ClockLabel.setAttribute( 'value', timestr );
}
var count = 0; // if you don't want a counter set this to zero
var agent = 1; // if you just want the clock set this to zero
var language = 'de-DE'; // locale, e.g. 'de-DE' , 'en-US' , 'fr-FR'
var personalText = ' '; // your personal text here
var cssColor = 'white'; // Font Color
var css = 'padding-top: 4px !important; padding-left: 0px; color: ' + cssColor + '; font-weight:400; font-size:14px;text-shadow: none; width: 275px; margin-right:42px;';
var cssA = 'margin-left:68px; width: auto;';
var options = {
weekday: 'long',
year: 'numeric',
month: 'short',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
};
var sec = 0;
var locale = language || window.navigator.languages[0];
var position = document.getElementById('helpMenu');
var ClockLabel = document.createElement('label');
ClockLabel.setAttribute('id', 'statusbar-clock-display');
ClockLabel.setAttribute('class', 'statusbarpanel-text');
ClockLabel.setAttribute('style', css);
position.parentNode.insertBefore(ClockLabel, position.nextSibling);
if( agent == 1 ) {
var AgentLabel = document.createElement('label');
AgentLabel.setAttribute('id', 'statusbar-agent-display');
AgentLabel.setAttribute('class', 'statusbarpanel-text');
AgentLabel.setAttribute('style', css + cssA);
var FFstr = window.navigator.userAgent.split(' ');
var FF = FFstr[FFstr.length-1].replace( '/' , ' ' );
// var text = "Firefox " + gAppInfo.version + personalText;
// Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo).QueryInterface(Ci.nsIXULRuntime);
var text = "Version " + AppConstants.MOZ_APP_VERSION_DISPLAY + personalText;
AgentLabel.setAttribute( 'value', text );
position.parentNode.insertBefore(AgentLabel, position.nextSibling);
}
if( count == 1 ) {
ClockLabel.addEventListener('dblclick', function() { sec = 0; });
}
window.setInterval( doDatClock , 1000 );
})();
Alles anzeigen
Ich würde gerne die Uhrzeit um ein paar Leerzeichen nach rechts versetzen und das Komma hinter dem Jahr entfernen.
Weiss jemand wie und wo ich da ansetzen muss?
[attachment=0]Zwischenablage01.jpg[/attachment]
Zitat
Ok, danke für die Hilfe! :klasse: