geldhuegel: Bitte verlinke zum Skript oder stelle den Code hier ein, damit niemand erst suchen muss.
Fx 69 Update und meine Scripte
-
Joda123 -
5. September 2019 um 15:50 -
Erledigt
-
-
geldhuegel: Ersetze in Zeile 46 createElement durch createXULElement
-
-
Hallo Milupo, hat etwas gedauert. Aber Zeile 46 war goldrichtig! Danke.
-
Gern geschehen.
-
geldhuegel, überprüfe alle deine Skripts auf createElement und browser.xul. Ab Firefox 69 muss browser.xul in browser.xhtml und createElement in createXULElement umbenannt werden.
-
Hallo geldhuegel
Teste mal diese neue Version:
Code
Alles anzeigen// ==UserScript== // @name ShowSearchBarHistroryByClick.uc.js // @description Erstellt eine Schaltfläche zum Anzeigen der Such-Chronik am rechten Ende der Suchleiste, // @description oder mit Rechtsklick auf Lupensymbol in der Suchleiste anzeigen. // @charset UTF-8 // @include main // @version 0.6.3 69a対応(createElement → createElementNS) // @version 0.6.2 68a対応/pref操作をこのスクリプト単独でできるように変更 // @version 0.6.1 64a対応 // @version 0.6 ボタンとマウスボタンをチェックするように修正 // @version 0.5 prefの操作を追加 // @version 0.4 「検索バー非表示→表示」で履歴表示ボタンが消えるのを修正 // @note 履歴表示件数を上限なしにできるように変更 // @version 0.3 UIカスタマイズをすると履歴表示ボタンが消えるのを修正 // ==/UserScript== (function(){ "use strict"; const createButton = false // true = Schaltfläche am rechten Ende der Suchleiste zum Anzeigen der Suchchronik // false = Rechtsklick auf Lupensymbol in Suchleiste zum Anzeigen der Suchchronik const noLimitResult = true // true = unbegrenzte Anzahl der Chronik Einträge false = Standard (nur 20 Einträge anzeigen) const timeSeries = true // true Suchchronik nach Such-Reihenfolge sortieren false = Standard (in alphabetischer Reihenfolge) timeSeries? set_formfill() : reset_formfill(); function set_formfill(){ setPref('browser.formfill.bucketSize', -1); setPref('browser.formfill.maxTimeGroupings', -1); setPref('browser.formfill.timeGroupingSize', -1); } function reset_formfill(){ clearPref('browser.formfill.bucketSize'); clearPref('browser.formfill.maxTimeGroupings'); clearPref('browser.formfill.timeGroupingSize'); } function btnSet(){ const XULNS = 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'; const h = document.getElementById('searchbar-history-dropmarker'); const bar = document.getElementById('searchbar'); const box = bar._textbox; const mushi = bar.querySelector('.searchbar-search-button'); const img = 'chrome://global/skin/icons/arrow-dropdown-16.svg'; const btn = document.createElementNS(XULNS, 'toolbarbutton'); btn.setAttribute('image', img); btn.setAttribute('height', '24px'); btn.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional'); btn.setAttribute('id', 'searchbar-history-dropmarker') btn.addEventListener('click', showHistory, false); let v = ''; if(createButton){ if(h) return; //box.appendChild(btn); // fix67 bar.querySelector('.search-go-container').appendChild(btn); }else{ mushi.addEventListener('click', showHistory, false); mushi.setAttribute('oncontextmenu', 'return(false);'); } function showHistory(e){ if(!((e.target.id == 'searchbar-history-dropmarker' && e.button == 0) || (e.target == mushi && e.button == 2))) return; if(box.popup.popupOpen){ box.popup.closePopup(); }else{ if(box.value) v = box.value; box.value = ''; box.showHistoryPopup(); box.value = v; v = ''; } } noLimitResult? box.popup.setAttribute('nomaxresults', 'true') : box.popup.removeAttribute('nomaxresults'); } btnSet(); window.addEventListener('aftercustomization', btnSet, false); BrowserSearch.searchBar.addEventListener('load', btnSet, false); window.addEventListener('unload', function uninit(){ window.removeEventListener('aftercustomization', btnSet, false); BrowserSearch.searchBar.removeEventListener('load', btnSet, false); window.removeEventListener('unload', uninit , false); }, false); // Configuration erstellen function setPref(aPrefString, aPrefType, aValue){ var xpPref = Services.prefs; try { switch (aPrefType){ case 'complex': return xpPref.setComplexValue(aPrefString, Components.interfaces.nsIFile, aValue); break; case 'str': return xpPref.setCharPref(aPrefString, escape(aValue)); break; case 'int': aValue = parseInt(aValue); return xpPref.setIntPref(aPrefString, aValue); break; case 'bool': default: return xpPref.setBoolPref(aPrefString, aValue); break; } } catch(e) {} return null; } // Configuration entfernen function clearPref(aPrefString){ Services.prefs.clearUserPref(aPrefString); } })()
Mfg.
Endor
-
Hallo milupo: Danke für den Tipp. Das hatte ich schon mit den Hinweisen aus dem Forum erledigt. Alles läuft zur Zufriedenheit.
Das Teil für die Such-History habe ich unter Verwendung von Endors Link auf https://u6.getuploader.com/script gefunden und ausprobiert und die Zeile nicht richtig gelesen.
Endor: Danke für die neue Version. Läuft auch, habe aber plötzlich im Suchfeld einen -> nach rechts wenn ich auf den Button des Scripts verzichte.
Was bei beiden Versionen bleibt ist die Sortierung der Liste. Egal ob true oder false bei const timeSeries = , die angezeigte Reihenfolge bleibt immer gleich. Vielleicht funkt ja da irgend was anderes dazwischen.
Bei solchen Sachen geht's mir oftmals nicht um die Nutzung der Erweiterung sondern um das "am Ball bleiben". Nochmals Danke an Euch für Hilfe und Geduld.
-
Hallo geldhuegel, ich habe keinen Rechtspfeil, wenn ich mit Endors Skriptversion createButton auf false setze. Da funkt dir vielleicht ein anderes Skript oder CSS-Code dazwischen. Du hast die alte Skriptversion deaktiviert? Allerdings verwendet die auch keinen Rechtspfeil.
Die alphabetische Sortierung funktioniert wirklich nicht. Das stimmt.
-
Doch, ein Pfeil nach rechts erscheint - wenn man einen Suchbegriff eingibt. Leider verschwindet der auch nicht nach der Suche. Bei mir wird mit einem Skript der Suchbegriff automatisch geleert, der Rechtspfeil bleibt.
-
geldhuegel Du kannst mit folgender CSS-Regel den Rechtspfeil ausblenden:
Das musst du in eine CSS-Datei packen oder in die userChrome.css schreiben.
Wenn du eventuell den Dropdown-Pfeil noch färben möchtest, kannst du folgende Möglichkeiten verwenden:
1. Du fügst folgende Zeile zwischen Zeile 51 und 52 des Skripts ein:
Das färbt den Dropdown-Pfeil blau. Du kannst da natürlich eine andere Farbe festlegen.
2. oder du verwendest folgenden CSS-Code:
Das muss in eine CSS-Datei (z. B. zusammen mit dem Code ganz oben) oder in die userChrome.css.
-
-
Vielleicht passt dieses Script besser, ich ziehe es auch obigem vor,
es fügt ganz Rechts in der Suchleiste eine Schaltfläche mit Dropmarker einzum anzeigen der Suchchronik.
Es heißt show_SearchBar_Histrory_Dropmarker.uc.js und ist von Alice
dem wohl besten Scriptschreiber den es gibt. Wurde auch erst kürzlich Aktualisiert.
Code
Alles anzeigen// ==UserScript== // @name show_SearchBar_Histrory_Dropmarker.uc.js // @namespace http://space.geocities.yahoo.co.jp/gl/alice0775 // @description Show Searchbar Histrory Dropmarker // @include main // @compatibility Firefox 69 // @version 2019/07/13 01:00 Fix 68 Bug 1556561 - Remove children usage from autocomplete binding // @version 2019/06/10 01:00 Fix 67.0a1 Bug 1492475 The search service init() method should simply return a Promise // @version 2019/05/24 11:00 Fix overflowed/underflowed // @version 2018-09-16 fix button click // @version 2018-07-21 add button toggle popup when click // @version 2018-07-21 add button style open state // @version 1.0 // @original https://u6.getuploader.com/script/download/1670 // ==/UserScript== var showSearchBarHistroryDropmarker = { init2: function() { const kNSXUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; let bar = BrowserSearch.searchBar; if (!bar) return; let ref = bar.querySelector(".search-go-container"); if (ref.parentNode.querySelector(".searchBar-history-dropmarker")) return; let btn = document.createElementNS(kNSXUL, "dropmarker"); btn.setAttribute("anonid", "historydropmarker"); btn.setAttribute("class", "searchBar-history-dropmarker chromeclass-toolbar-additional"); btn.setAttribute("tooltiptext", "Suchchronik anzeigen"); btn.setAttribute("inherits", "open,parentfocused=focused,usertyping"); btn.setAttribute("ordinal", "99"); btn.setAttribute("type", "checkbox"); btn.setAttribute("autoCheck", "false"); this.btn = ref.parentNode.insertBefore(btn, ref); btn.addEventListener("click", this, false); btn.addEventListener("mousedown", this, false); }, init: function() { window.addEventListener("unload", this, false); window.addEventListener('aftercustomization', this, false); Services.prefs.addObserver('browser.search.widget.inNavBar', this, false); window.addEventListener("resize", this, false); this.popup = document.getElementById("PopupSearchAutoComplete"); this.popup.addEventListener("popupshown", this, false); this.popup.addEventListener("popuphidden", this, false); Services.search.init().then(rv => { if (Components.isSuccessCode(rv)) { this.init2(); } }); let style = ` .search-go-container { /* -moz-box-ordinal-group:500; */ /* V-> */ } .searchBar-history-dropmarker { -moz-appearance: none; list-style-image: url(chrome://global/skin/icons/arrow-dropdown-16.svg); opacity: 0.6; } .searchBar-history-dropmarker:active, .searchBar-history-dropmarker[checked] { background-color: var(--toolbarbutton-active-background); } .searchBar-history-dropmarker:hover { background-color: var(--toolbarbutton-hover-background); } toolbar[brighttext] .searchBar-history-dropmarker { -moz-context-properties: fill, fill-opacity; fill: currentColor; fill-opacity: var(--toolbarbutton-icon-fill-opacity); } `.replace(/\s+/g, " "); let sspi = document.createProcessingInstruction( 'xml-stylesheet', 'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"' ); document.insertBefore(sspi, document.documentElement); sspi.getAttribute = function(name) { return document.documentElement.getAttribute(name); }; }, uninit: function() { window.removeEventListener("unload", this, false); window.removeEventListener('aftercustomization', this, false); Services.prefs.removeObserver('browser.search.widget.inNavBar', this); window.removeEventListener("resize", this, false); }, showHistory: function(event) { event.stopPropagation(); let bar = document.getElementById("searchbar"); if (event.target.hasAttribute("checked")) { bar._textbox.closePopup(); return; } let v = ''; if(bar._textbox.value) v = bar._textbox.value; bar._textbox.value = ''; bar._textbox.showHistoryPopup(); bar._textbox.value = v; }, popupshown: function(event) { this.btn.setAttribute("checked", true); }, popuphidden: function(event) { setTimeout(function(){this.btn.removeAttribute("checked");}.bind(this), 0); }, observe(aSubject, aTopic, aPrefstring) { if (aTopic == 'nsPref:changed') { // Aktion beim Ändern von Einstellungen setTimeout(function(){showSearchBarHistroryDropmarker.init2();}, 0); } }, _timer: null, handleEvent: function(event) { switch(event.type) { case "resize": if (!this._timer) clearTimeout(this._timer); this._timer = setTimeout(() => this.init2(), 250); break; case "aftercustomization": this.init2(); break; case "mousedown": if (event.button == 0) this.showHistory(event); break; case "click": if (event.button == 0) { //event.stopPropagation(); //event.preventDefault(); } break; case "popupshown": this.popupshown(event); break; case "popuphidden": this.popuphidden(event); break; case "unload": this.uninit(); break; } } } showSearchBarHistroryDropmarker.init();
Mfg.
Endor -
Danke für eure weiteren Hinweise und Vorschläge.
Nebenbei bemerkt: Bei 4 FF auf zwei Rechnern habe ich im Suchfeld immer den Pfeil nach rechts sobald etwas eingegeben wird. Auch in einem Profil das ich kürzlich bereinigt habe und das keine Addons und Skripte enthält. Mir ist das vorher noch nie aufgefallen.
-
Nebenbei bemerkt: Bei 4 FF auf zwei Rechnern habe ich im Suchfeld immer den Pfeil nach rechts sobald etwas eingegeben wird. Auch in einem Profil das ich kürzlich bereinigt habe und das keine Addons und Skripte enthält. Mir ist das vorher noch nie aufgefallen.
Der Rechtspfeil gehört standardmäßig zu Firefox. Die Datei heißt forward.svg und wird in der Suchleiste und Adressleiste verwendet. Möglicherweise hast du den Pfeil mal mit einem CSS-Code ausgeblendet, den du nicht mehr hast. Wenn du den Rechtspfeil in der Adressleiste ebenfalls (wieder) hast, kannst du ihn dort mit folgendem Code ausblenden:
-
Mach da mal noch ein "l" rein: #urlbar-go-button
-
Habe ich extra gemacht, um deine Aufmerksamkeit zu prüfen. Nein, danke, dass du aufgepasst hast.
-
Gerne.
-
Hallo
Es geht um das Script MultiRowTabLiteforFx.uc.js, kann man das Script so ändern das sich die Angehefteten Tabs nicht mit Bewegen.
-