Ein schönes Weihnachtsfest wünsche ich Dir!
Wünsche ich dir auch!
Ein schönes Weihnachtsfest wünsche ich Dir!
Wünsche ich dir auch!
Ich benötige nur das Script aus #46. Alles Weitere will ich gar nicht haben.
Würde zwar das Skript aus #62 nehmen, aber wie du willst.
Nur klickt man auf einen der letzten Suchbegriffe und ....
die Suche wird gestartet, aber der Suchbegriff bleibt im Suchfeld stehen.
Das Suchfeld wird nicht geleert!
Eingedenk dessen, was Boersenfeger geschrieben hat und weil der Fall doch sehr selten auftritt, dass man in eine leeres Suchfeld klickt, nur um einen Eintrag aus der Such-Chronik zu wählen, werde ich das jetzt einfach so lassen, wie es ist und als gewolltes Feature verkaufen. Sehr viel häufiger gibt man etwas ein und wählt dann etwas aus den Suchvorschlägen im Popup aus und dann wird ja der Eintrag aus dem Textfeld wieder gelöscht.
Die Alternative wäre nämlich, es genau so zu machen wie im Original-Skript aus #1. Also die bestehende Funktion doSearch() der Searchbar aus dem Firefox-Quellcode zu überschreiben, nur um eine einzige Zeile zum Löschen des Eintrags einzufügen. Das möchte ich schon aus Sicherheitsgründen nicht und weil Sören Hentzschel ja geschrieben hat, dass da gerade fleißig an dieser Stelle gebastelt wird. Dann wird man jetzt und vielleicht auch später immer wieder nachbessern müssen...
Frohe Weihnachten wünsche ich allen. 🎄🔔🎁🐔
Der muss sein:
Entferne einfach Zeile 12
ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
aus dem Skript.
Edit: grisu2099 war schneller ![]()
Danke für die Hinweise.![]()
Nur klickt man auf einen der letzten Suchbegriffe und ....
die Suche wird gestartet, aber der Suchbegriff bleibt im Suchfeld stehen.
Das Suchfeld wird nicht geleert!
Stimmt. Den Fall hatte ich überhaupt nicht berücksichtigt...
Muss ich später noch mal drüber schauen.
Danke, jetzt kann ich nichts mehr feststellen, läuft prima.
Das freut mich
...
Und genau das stimmt nach meinem Test auf zwei Computern eben nicht.1
Also konkret: wenn du z.B. über den Button "Sidebars anzeigen" die Sidebar aktivierst, erscheint bei dir trotzdem eine leere Sidebar?
Das ist bei mir definitiv nicht so!
Wenn du ständig eine leere Seite siehst und die Seitenleiste aktiviert ist, dann einfach auf das Lesezeichen/Chronik-Symbol klicken oder ohne Seitenleiste unter Ansicht den entsprechenden Inhalt aufrufen. Beim nächsten Hovern hat dann die Seitenleiste auch wieder einen Inhalt.
Falls gewünscht, mache ich ein Video...
Auch dein Szenario kann ich nicht nachstellen. Ich vermute mal, dass das, was du meinst auch mit dem Schließen-Button in der Sidebar zusammenhängt. Wenn du mal diesen Button nicht benutzt, zeigt er dann das gleiche Verhalten?
Spiel das ein paarmal durch.
Habe ich gemacht. Für mich funktioniert es als "erster Wurf" zumindest so gut, dass es meine Erwartungshaltung erfüllt.
Das heißt nicht, dass das Skript fehlerfrei ist. Aber die meisten Kritikpunkte finde ich nicht gerecht. Wenn man sich eine Hover-Sidebar per Skript installiert, dann kann man ja wohl stark davon ausgehen, dass die Sidebar als Vorbedingung aktiviert ist. Natürlich sollte keine leere Sidebar erscheinen, aber dieses Problem ist entweder gar nicht existent oder man ist genau einmal damit konfrontiert und aktiviert dann die Sidebar. Das gleiche gilt für den Schließen-Button in der Sidebar. Bei mir ist er per CSS schon längst ausgeblendet. Das Skript ist ja auch nicht für "Oma Erne" gedacht, sondern für Leute, die wissen was sie tun und was sie wollen.
Die einzige Sache, die ich als störend empfinde ist die Nicht-Berücksichtigung der Leiste, welche jetzt über "sidebar.revamp" aktiviert wird. Aktiviert stimmt dann der Mouse-Kontrollbereich nicht mehr, ab dem die Leiste ausfährt und damit ist diese Leiste mit den Einstellungen nicht erreichbar.
Hier die aktualisierte Version. Ich habe das neue Skript jetzt getestet und kann keine offensichtlichen Fehler mehr finden. Was aber nichts heißt. Wer das Skript wirklich ständig benutzt, wird möglicherweise noch über irgendwelche "Ungereimtheiten"stolpern.
(function() {
if (!window.gBrowser)
return;
//Settings ---->
const waitingToClear = 4000; //Zeitangabe für Löschen der Eingabe: [Wert] in ms oder [0] kein automisches Löschen.
//<--- Settings
function clearSearchbar() {
let searchbar = document.getElementById('searchbar-new');
if(searchbar) {
let textbox = searchbar.inputField;
textbox.addEventListener("keydown", function(event) {
if( event.key == "Enter" ) {
setTimeout( function() {
textbox.value = '';
},500);
}
});
var idTimeOut;
if(waitingToClear > 0) {
textbox.addEventListener('input', function() {
let urlbarGoButton = document.querySelector("#searchbar-new .urlbar-go-button");
if(urlbarGoButton) {
urlbarGoButton.hidden = false;
}
clearTimeout(idTimeOut);
idTimeOut = setTimeout(function() {
textbox.value = '';
textbox.dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, cancelable: true, keyCode: 27, code: "Escape" }));
setTimeout( function() {
textbox.dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, cancelable: true, keyCode: 27, code: "Escape" }));
if(urlbarGoButton) {
urlbarGoButton.hidden = true;
}
},100);
},waitingToClear);
});
}
}
}
setTimeout(clearSearchbar,1000);
})();
Alles anzeigen
Ich würde nicht vor Firefox 149 damit rechnen.
Danke!
Habe das "gleiche" Skript mal auf der Release laufen lassen. Angepasst wurden nur die IDs und zu Testzwecken habe ich bei beiden Browsern das Ausblenden des Popups abgeschaltet.
Ergebnis: Unter der Release-Version funktioniert es! Heißt: es wird ein vorher automatisch gelöschter Wert nicht für eine neue Suche verwendet, wenn man die Enter-Taste drückt, so wie es ja leider bei der Nightly-Version der Fall ist.
Ich könnte jetzt natürlich schauen, warum das jetzt anders gehandhabt werden muss. Allerdings habe ich die Befürchtung, dass ich dann ständig der laufenden Entwicklung, wie Sören es weiter oben beschrieben hat, hinterherhechle.
In jedem Fall erfolgte die standardmäßige Aktivierung ja auch erst einmal nur für Nightly-Versionen und noch nicht darüber hinaus, weil die Implementierung noch nicht abgeschlossen ist.
Also werden die Änderungen höchstwahrscheinlich (oder sicher) nicht in die nächste Release mitübernommen? ![]()
Wenn keine Sidebar aktiv ist, erscheint eine leere Sidebar, obwohl gar nichts erscheinen dürfte. Und das gleiche passiert mit aktiver Sidebar, wenn die linke Seitenleiste ausgeblendet ist.
[...]
Bei mir laufen keinerlei sonstige Anpassungen, weder per userChrome.css noch Script.
Keine Ahnung, warum er bei dir dieses Verhalten zeigt. Ich habe allerdings etliche Anpassungen, aber kann mir kaum vorstellen, dass es damit was zu tun haben könnte, dass es wie beschrieben bei mir läuft. ![]()
MIt Änderungen am Code ist aktuell und in der nächsten Zeit auf jedem Fall noch zu rechnen. Siehe immer noch zahlreiche offene Abhängigkeiten:
Danke für die Info. Bin ich immerhin schon vorgewarnt, falls wieder was nicht geht....![]()
Hallo FuchsFan,
danke das du es nochmal so genau überprüft hast.
2. wird durch das Script dann gelöscht, der Pfeil rechts bleibt aber erhalten
Ja, weil ich den Suchen-Pfeil überhaupt nicht berücksichtigt hatte, so wie es auch im Original-Skript war und Boersenfegernur von 'Return' sprach.
3. wird dann auf den Pfeil geklickt, so öffnet sich ein Tab mit den Suchergebnissen und die Searchbar sieht dann wieder so aus
Das ist allerdings mehr als merkwürdig und sollte eigentlich auch nicht möglich sein, wenn man sich das Skript anschaut. ![]()
Dort wird ja der Inhalt der Textbox gelöscht und der vorherige Wert sollte nicht mehr existent sein. Der Fehler kommt übrigens auch, wenn man nach dem automatischen Löschen einfach nur 'Return' drückt. Muss jetzt erst mal ausschließen, dass sich was in der Nightly-Version dahingehend verändert hat.
Vielleicht hängst es auch mit der stärkeren Verknüpfung zur URL-Bar zusammen...
Das Script ist zwingend mit sidebar.revamp auf true zu testen (weil es ab Anfang des kommenden Jahres nur noch diese Konfiguration geben wird) und das sowohl mit eingeblendeter als auch ausgeblendeter Seitenleiste.
Alles funktioniert prinzipiell dann auch mit den genannten Einstellungen. Wobei ich jetzt nur die Sidebar auf der linken Seite testen konnte, weil es jetzt nicht mehr möglich ist, an die Einstellungen für die Sidebar zu gelangen, da sich jedes mal vorher die Sidebar aktiviert. Das sollte man im Code noch berücksichtigen...
solltest du das kleine Problem nicht lösen können.
Ist schon...![]()
Habe das Skript aus #46 angepasst. Sollte jetzt richtig funktionieren.
Das hast du ganz toll gemacht
Funktioniert wie gewünscht, danke dafür.
Gerne
.
Es gibt jetzt noch ein Problem:
Der Fokus geht bei einer vollendeten Suche (z.B. über Google) nach kurzer Zeit wieder auf das Suchfeld der 'searchbar' zurück, anstatt auf der Webseite zu landen, so wie es standardmäßig sein sollte. Ich schaue, dass ich das noch irgendwie anpassen kann. ![]()
Edit: Oh Mann, bin ich bescheuert. Ich setze ja auch extra den Fokus auf die Textbox, dann muss man sich nicht wundern, wenn die Textbox auch den Fokus bekommt. ![]()
Habe das Skript aus #46 angepasst. Sollte jetzt richtig funktionieren.
Also hier funktioniert es eigentlich fehlerfrei
, bis auf das, was 2002Andreas angesprochen hat. Allerdings halte ich das Verhalten nicht für sonderlich problematisch, weil die Sidebar wieder ein- und ausfährt, wenn man die Maus nochmal in den Sidebar-Bereich hineinbewegt.
Noch ein "KI-ler"
. Das wird hier im Forum sicher bald zur Regel
.
Dann werden die Altvorderen mit ihren archaischen Werkzeugen und ohne KI-Unterstützung wohl bald aussterben...![]()
Bitte nochmal testen:
(function() {
if (!window.gBrowser)
return;
//Settings ---->
const waitingToClear = 4000; //Zeitangabe für Löschen der Eingabe: [Wert] in ms oder [0] kein automisches Löschen.
//<--- Settings
function clearSearchbar() {
let searchbar = document.getElementById('searchbar-new');
if(searchbar) {
let textbox = searchbar.inputField;
textbox.addEventListener("keydown", function(event) {
if( event.key == "Enter" ) {
setTimeout( function() {
textbox.value = '';
},500);
}
});
var idTimeOut;
var searchbarPopup = document.querySelector("#searchbar-new > .urlbarView");
if(waitingToClear > 0) {
textbox.addEventListener('input', function() {
searchbarPopup.style.display = "inherit";
clearTimeout(idTimeOut);
idTimeOut = setTimeout(function() {
textbox.value = '';
setTimeout( function() {
searchbarPopup.style.display = "none";
},100)
},waitingToClear);
});
}
}
}
setTimeout(clearSearchbar,1000);
})();
Alles anzeigen
FuchsFan 2002Andreas Danke euch beiden für die Bestätigung, dass es soweit läuft. ![]()
Das Suchwort wird gelöscht, aber das Popup bleibt hier noch offen. Kann man das auch noch anpassen?
Ja, werde ich versuchen. Hatte ja geschrieben, dass das nicht ganz unproblematisch ist, weil dann der Fokus "irgendwo" ist. Mal schauen. Es ist ja jetzt im programmatischen Sinn kein Popup mehr, deswegen funktioniert auch der Ansatz von aborix nicht mehr.