Tolle Idee. Tolle Erweiterungen dieser.
Du fährst mit dem Cursor über das darüber liegende checkbox-Element.
Bzw. das radio-Element. Zusammen mit der hellsten verfügbaren Grünfarbvariable:
Tolle Idee. Tolle Erweiterungen dieser.
Du fährst mit dem Cursor über das darüber liegende checkbox-Element.
Bzw. das radio-Element. Zusammen mit der hellsten verfügbaren Grünfarbvariable:
Danke für die Aufklärung.
Das würde aber auch in der Umkehr bedeuten, dass ich jede Seite, die ich aufrufe, in Cookiesbro definieren muß
Exakt. Bzw. ich kenne Cookiesbro nicht, aber andere Addons haben eine Standardvoreinstellung und dann muss man nur noch die Cookies definieren, die von dieser abweichen.
Durch die Verwendung von Elasticsearch entstehen zusätzliche Kosten, welche von mir aus privater Tasche bezahlt werden.
Upps, das überrascht mich. Also, dass dort weitere Kosten entstehen, denn ich dachte, das wäre freie Software, weil MediaWiki es ebenfalls nutzt, vergleiche Extension:CirrusSearch. Allerdings steht im Wikipedia-Artikel ja auch etwas zur Lizenzsituation.
Oder geht’s hier darum, dass Du einen weiteren Server benutzt oder benutzen musst?
Den Link dazu hatte Sören in Beitrag Nr. 2 gepostet...wo ist nun dein Problem wieder
Stimmt. Nur bezog ich mich ausschließlich auf Barbaras Posting, wollte das aber nicht sooo deutlich schreiben. Offensichtlich war auch Barbara selbst gar nicht klar, dass sie dasselbe Skript empfohlen hat.
Wo liegt mein Fehler
Welche Einstellungen hast Du in Bezug auf Cookies im Firefox selbst, also unter„Datenschutz & Sicherheit“? Dort solltest Du Cookies nicht löschen lassen, wenn das ein Addon übernehmen soll.
Nicht ganz.
Wenn schon, dann ist es ist ein von mir verändertes Script von Aris, was ich auch extra geschrieben hatte.
Wo Du Recht hast, hast Du Recht. Und tatsächlich hast Du das ja in das Skript eingetragen. Da habe ich nicht genau genug aufgepasst/weit genug gelesen.
(Das wäre aber nicht passiert, wenn der Link zu Deinem Posting angegeben worden wäre. Womit wir dann wieder beim alten Streitthema wären …)
Als Alternative gibt es hier noch was von Andreas, welches ich nutze
Nein, du nutzt eines von Aris (siehe unter CustomJSforFx/scripts). Steht auch so in der ersten Zeile.
Vielen Dank für die zahlreichen Hinweise, von denen zwei in Kombination zur Lösung führten.
Und dir Danke für die Rückmeldung.
oh bezüglich alter Firefox Version war das natürlich mein Fehler, irgendwie hatte ich mich in der Versionsnummer geirrt oder verlesen.
Allet jut. Wie ging noch mal die Redewendung? „Wer ohne Fehler im Glashaus sitzt, rufe als erstes ‚Jehova‘“ oder so?
Wie kann man den nervigen Fehler
javascriptvoid(0)
vermeiden.
Tritt das nur auf einer bestimmten Website auf? Wenn ja, bei welcher?
Warum nutzt du eine alte Firefox Version?
Ist die Frage ernst gemeint? Wenn ja, ist das unfair. Ich bin auch noch auf v.85.0.2. Mir ist bisher kein Update angeboten worden und ich habe erst durch diese Nachfrage bemerkt, dass Fx 86 veröffentlicht wurde.
Ich bin inzwischen fast weg von Desktop System Windows.
Ja, wusste ich, aber nicht, dass Du eigentlich nur noch unter Android aktiv bist. aber ich wusste nicht, das man dort so eigentlich nichts anpassen kann.
Meist Du das so:
Aua, das tut nur wirklich weh. Da finde ich in der Google-Suche, die Andreas oben eingetragen hat, schönere grüne Logos (OK, die sind nicht von der aktuellen Logo-Version abgeleitet).
vor der Aufgabe, die Bildchen so zu wandeln, dass ich sie als Icons verwenden kann.
Aber GIMP schafft das schon
XMP, oder? Normalerweise ja.
Das von Aris.
Danke, Ich nämlich auch (angepasst).
Was man nicht so alles findet … AngelOfDarkness Dir gefallen doch solche, ähhm, spezielle Dinge, was hältst Du von dieser Farbvariante des Firefoxlogos (anscheinend in der Inkarnation von 2009–2013)?
Sogar mit meinem Scrollbar-Skript.
Welches setzt Du ein? Das von Aris oder bspw. das etwas einfachere, das letztens von Endor präsentiert wurde?
was du mit "Netzwerktrennung" meinst,
Ich bin zwar nicht .DeJaVu, vermute aber, dass er damit Firefox 85: Netzwerk-Partitionierung verbessert Privatsphäre meint. .DeJaVu : Das wäre dann in diesem Thread zu diskutieren.
Jetzt lässt sich die Adresse in der Urlbar nicht kopieren bzw. bearbeiten oder verändern.
Ein Klick auf den Url hat keine Wirkung.
Das war mir ebenfalls noch eingefallen, dass ich das nicht getestet hatte. Mit Rechtsklick geht es aber weiterhin. Mac-User müssten mal erzählen, ob es bei ihnen noch möglich ist.
Edit: Mit der F6-Taste ist die Markierung ebenfalls noch möglich.
Eigentlich möchte ich NUR dass die Domain fett farbig hervor gehoben wird, alle anderen Funktionen wie das unterstreichen eines Abschittes oder anklicken eines Abschnittes usw. möchte ich gar nicht haben.
Kann man das Script auf diesen Minimal Teil reduzieren? Wie wäre dann der Code?
Bitte mal testen, scheint bei mir zu funktionieren, zur Einstellung siehe linkifyAddressParts (bereits auf false gesetzt):
// ==UserScript==
// @name dav_LinkifiesLocationBar
// @version 1.1.1
// @description dav_LinkifiesLocationBar
// @shutdown dav_LinkifiesLocationBar.globalShutdown();
// ==/UserScript==
/*
Idea based on
https://addons.mozilla.org/en-US/firefox/addon/locationbar%C2%B2/
https://github.com/simonlindholm/locationbar2
"linkifyAddressParts" enhancement by Speravir
*/
setTimeout(function() {
if (location.href != 'chrome://browser/content/browser.xhtml') return;
let
linkifyAddressParts = false,
selectUrlbarText = true,
pathnameArrow = true,
fontMonospace = true,
colorizeExtensionFile = false;
function getWindow(){
return window;
}
function getMostRecentWindow(){
var win = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow("navigator:browser");
return win;
}
var localWindow = getWindow();
localWindow.dav_LinkifiesLocationBar = {};
var styleBase = `
.claseLocationBar{
display: block;
position: absolute;
height: 24px;
width: 100%;
line-height: 24px;
white-space:nowrap;
overflow:hidden;
}
.claseLocationBar span{
position: relative;
margin: 0 1px;
display: inline-block;
}
.claseLocationBar .label_pathname {
margin-inline: unset !important;
}
locationBarTag{
display: inline;
}
/*************************************
*************** COLORS ***************
*************************************/
.claseLocationBar span.protocol{
font-weight: normal;
color: #777777;
margin-right: -1px;
}
.claseLocationBar .subdomain {
font-weight: bold;
color: #C68007;
}
.claseLocationBar span.hostname{
font-weight: bold;
color: red;
}
.claseLocationBar span.port{
color: #5F58A3;
}
.claseLocationBar span.pathname{
color: black;
}
.claseLocationBar span.hash{
color: #1054C9;
margin-left: -1px;
}
.claseLocationBar span.search{
color: #03AA03;
margin-left: -1px;
}
.claseLocationBar .extension{
color: rgb(96,86,143);
}
`;
var style_linkifyAddressParts = !linkifyAddressParts?"":`
.claseLocationBar span:hover{
text-decoration: underline;
cursor: pointer;
}
`;
var style_fontMonospace = !fontMonospace?"":`
.urlbar-input-box[dav_LinkifiesLocationBar]{
font-family: monospace ;
margin-top: 4px;
}
.claseLocationBar{
margin-top: -4px;
line-height: 28px;
}
.claseLocationBar .pathname:after{
top: 10px;
}
.claseLocationBar span.port{
margin-left: -1px;
}
.claseLocationBar .subdomain {
margin-right: -1px;
}
.claseLocationBar span.hostname{
margin-right: 1px;
}
`;
var style_pathnameArrow = !pathnameArrow?"":`
.claseLocationBar span.pathname{
padding-left:9px;
margin: 0 2px;
}
.claseLocationBar .pathname:before{
content:' ';
display: block;
position: absolute;
border-style: solid;
border-width: 4px 4px 4px 7px;
border-color: transparent transparent transparent #6fa880;
border-color: transparent transparent transparent #5ba8bf;
top: 10px;
left: 0px;
}
.claseLocationBar .label_pathname{
display: none;
}
`;
var stylexul = `
.urlbar-input-box[dav_LinkifiesLocationBar] #urlbar-input:focus ~ .claseLocationBar{
display: none !important;
}
.urlbar-input-box[dav_LinkifiesLocationBar] #urlbar-input:focus{
opacity: 1;
}
.urlbar-input-box[dav_LinkifiesLocationBar] #urlbar-input{
opacity: 0;
}
`;
/*
AGENT_SHEET: 0
USER_SHEET: 1
AUTHOR_SHEET: 2
*/
var CSS_Loader = {
sss: Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService),
load: function(cssCode) {
this.unload(cssCode);
var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(cssCode), null, null);
this.sss.loadAndRegisterSheet(uri, this.sss.AGENT_SHEET);
},
unload: function(cssCode) {
var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(cssCode), null, null);
if (this.sss.sheetRegistered(uri,this.sss.AGENT_SHEET))
{
this.sss.unregisterSheet(uri,this.sss.AGENT_SHEET);
}
}
}
if(linkifyAddressParts) {
const CLIKS = {
left: 0,
middle: 1,
right: 2
}
}
function extend() {
var copy, target = {};
for (var i = 0, l = arguments.length; i < l; i++) {
var options = arguments[i];
for (var name in options) {
copy = options[name];
if (copy !== undefined) {
target[name] = copy;
}
}
}
return target;
}
var styleString = (style) => {
return Object.keys(style).reduce((prev, curr) => {
return `${prev += curr.split(/(?=[A-Z])/).join('-').toLowerCase()}:${style[curr]};`
}, '');
};
function createElement(elto) {
elto = extend({
attrArray: {},
evtListener: [],
estilos: {}
}, elto);
var node = getWindow().document.createXULElement(elto.type);
Object.keys(elto.attrArray).forEach(key => {
if(key == "innerHTML"){
node.innerHTML = encodeHTML(elto.attrArray[key]);
}
else {
node.setAttribute(key, elto.attrArray[key]);
}
});
if(linkifyAddressParts) {
elto.evtListener.forEach(evt => {
node.addEventListener(evt.type, evt.funcion, false);
});
}
let estilo = styleString(elto.estilos);
if (estilo) {
node.setAttribute("style", estilo);
}
return node;
}
function encodeHTML(text) {
return decodeURI(text)
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
function appendPart(text, clase) {
if (!text) return;
if(clase == "pathname")
{
let sp = createElement({
type: "label",
attrArray: {
class: "label_pathname",
innerHTML:"/"
}
});
divLocationBar.appendChild(sp);
}
let sp = createElement({
type: "span",
attrArray: {
class: clase,
innerHTML:text
},
evtListener: !linkifyAddressParts?[]:[{
type: "click",
funcion: clickPart
}]
});
divLocationBar.appendChild(sp);
sp.setAttribute("href", divLocationBar.textContent);
return sp;
}
if(linkifyAddressParts) {
function clickPart(evt) {
if (evt.button == CLIKS.right) return;
let target = evt.target;
if (target.className != "protocol") {
let href = target.getAttribute("href");
var where = evt.button == CLIKS.middle || evt.ctrlKey ? "tab" : "current";
evt.view.openLinkIn(href, where, {
allowThirdPartyFixup: true,
targetBrowser: gBrowser.selectedBrowser,
indicateErrorPageLoad: true,
allowPinnedTabHostChange: true,
disallowInheritPrincipal: true,
allowPopups: false,
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
});
evt.stopPropagation();
}
}
}
function borraPrevio() {
var divPrevio = localWindow.document.querySelector(".claseLocationBar");
if (divPrevio) {
divPrevio.parentNode.removeChild(divPrevio)
}
}
var debounce = (fn, ms = 0) => {
let timeoutId;
return function(...args) {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => fn.apply(this, args), ms);
};
};
var pintaLocation = debounce(pintaLocation_, 50);
function pintaLocation_() {
divLocationBar.innerHTML = '';
var urlBarInput = getWindow().document.querySelector("#urlbar-input").value;
var urlGBrowser = gBrowser.currentURI.displaySpec;
if(urlGBrowser.startsWith("about")){
divLocationBar.innerHTML = encodeHTML(urlBarInput);
return;
}
var url = urlGBrowser.indexOf(urlBarInput) != -1 ? urlGBrowser : urlBarInput;
try {
var { protocol, hostname, port, pathname, hash, search } = new URL(url);
} catch (e) {
divLocationBar.innerHTML = encodeHTML(urlBarInput);
return;
}
var partido = hostname.split(".");
var subdomain;
if(partido.length > 2 && !partido.every( v => v == v-0 ))//chequeamos que no sean todos numeros, porque entonces es una IP
{
subdomain = partido.splice(0, partido.length-2).join(".");
hostname= partido.join(".");
}
appendPart(protocol + "//", "protocol");
if (subdomain) {
appendPart(subdomain+".", "subdomain");
}
appendPart(hostname, "hostname");
if (port) {
appendPart(":" + port, "port");
}
var arrayPathname = pathname.split("/");
var arrayPathnameLength = arrayPathname.length;
arrayPathname.forEach((elto, index) => {
if (elto) {
let sp = appendPart(elto, "pathname");
if(colorizeExtensionFile && index == arrayPathnameLength-1)
{
let arrayDot = elto.split(".");
if(arrayDot.length > 1)
{
let extension = arrayDot.pop();
sp.innerHTML = "";
sp.appendChild(createElement({
type: "locationBarTag",
attrArray: {
href:sp.getAttribute("href"),
innerHTML: arrayDot.join(".")
}
}));
sp.appendChild(createElement({
type: "locationBarTag",
attrArray: {
class: "extension",
href:sp.getAttribute("href"),
innerHTML: "."+extension
}
}));
}
}
}
});
appendPart(search, "search");
appendPart(hash, "hash");
}
/******************* INIT ***************************/
var urlbarInput = getWindow().document.querySelector("#urlbar-input");
var timeMouseMove = -1;
function hideDivLocatonBar(){
urlbarInput.focus();
}
var divLocationBar = createElement({
type: "div",
attrArray: {
class: "claseLocationBar"
},
evtListener: !linkifyAddressParts?[]:[{
type: "click",
funcion: function(evt) {
hideDivLocatonBar()
if(selectUrlbarText){
urlbarInput.select();
}
}
},{
type: "mouseenter",
funcion: function(evt) {
//esto es el ratón entrando por encima
if(evt.screenY == divLocationBar.screenY)
{
timeMouseMove = setTimeout(hideDivLocatonBar, 500);
}
}
},{
type: "mouseleave",
funcion: function(evt) {
clearTimeout(timeMouseMove);
}
}]
});
borraPrevio();
urlbarInput.parentNode.appendChild(divLocationBar);
urlbarInput.parentNode.setAttribute("dav_LinkifiesLocationBar", true);
if(linkifyAddressParts) urlbarInput.addEventListener("blur", pintaLocation);
pintaLocation();
var last_displaySpec = "";
var intevalID = setInterval(function(){
//console.log("setInterval", intevalID, localWindow == window, localWindow == getMostRecentWindow());
let actual_displaySpec = gBrowser.currentURI.displaySpec;
if(last_displaySpec != actual_displaySpec){
last_displaySpec = actual_displaySpec;
pintaLocation();
}
}, 50);
CSS_Loader.load(styleBase);
CSS_Loader.load(style_linkifyAddressParts);
CSS_Loader.load(style_pathnameArrow);
CSS_Loader.load(style_fontMonospace);
CSS_Loader.load(stylexul);
/******************* END INIT ***************************/
dav_LinkifiesLocationBar.shutdown = function(win){
borraPrevio();
clearTimeout(intevalID);
urlbarInput.parentNode.removeAttribute("dav_LinkifiesLocationBar");
CSS_Loader.unload(styleBase);
CSS_Loader.unload(style_linkifyAddressParts);
CSS_Loader.unload(style_pathnameArrow);
CSS_Loader.unload(style_fontMonospace);
CSS_Loader.unload(stylexul);
if(linkifyAddressParts) urlbarInput.removeEventListener("blur", pintaLocation);
}
dav_LinkifiesLocationBar.globalShutdown = function(){
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var ws = wm.getEnumerator(null);
while(ws.hasMoreElements()) {
var w = ws.getNext();
w.dav_LinkifiesLocationBar.shutdown(w);
}
}
}, 10);
Alles anzeigen
Ob meine Änderungen wirklich alle sauber sind, kann aber wohl wirklich nur ein Javascript-Auskenner wie aborix oder Sören Hentzschel sagen. Wenn es auch bei Euch funktioniert, werde ich den Code dem Originalautor zukommen lassen.
Nachtrag: Die URL zu markieren geht nur noch mit Rechtsklick auf die Adressleiste oder Nutzung der F6-Taste.
Im Prinzip wird also Dein Tipp vom 8. April 2020 umgesetzt, vielleicht sogar (fast) exakt so …
Bei der Gelegenheit: Man kann übrigens das Skript immer noch unangetastet lassen und alles per CSS übersteuern
Das sieht bei mir so aus:
.urlbar-input-box[dav_LinkifiesLocationBar]{
font-family: sans-serif;/* individuell anpassen */
font-size: 1em;/* individuell anpassen */
margin-top: -4px;/* Wert schriftabhängig */
}
.claseLocationBar {
margin-top: 0;
}
.claseLocationBar span.pathname {
margin: 0;
padding-left: 0;
}
.claseLocationBar .pathname::before {
display: none;
}
.claseLocationBar .label_pathname {/* Schrägstrich-Trennung */
display: inline;
}
.claseLocationBar span.hash {/*alles nach "#" */
margin-left: 0;
}
.claseLocationBar span.search {/* alles nach "?" */
margin-left: 0;
}
Alles anzeigen
Wenn man die Schrifteinstellungen nicht ändern will, kann man font-family: …; und font-size: …; weglassen, ich habe oben einfach die Standardwerte vorgegeben. margin-top: …; muss sehr wahrscheinlich individuell angepasst werden.
Mich stört glaub grundsätzlich wenn für so eine Kleinigkeit wie Hauptdomain=farbig/fett so viel Code notwendig ist.
Ich befürchte, der ist notwendig, weil die Fett-Hervorhebung der Domain eigentlich im Programmcode fest einprogrammiert ist (und nur das, der Mehrwert der Farben wie früher per Addon war ja eigentlich nicht mehr möglich).
Bei der Gelegenheit: Man kann übrigens das Skript immer noch unangetastet lassen und alles per CSS übersteuern.
Ich bedanke mich ganz Herzlich für dieses Script.
Ich hab eben auch noch das dortige Mousewheel_Zoom-Skript installiert und teste es mal. Bisher benutze ich immer Tasten oder die Maus mit Strg-Taste, da benötigt man aber immer beide Hände, was manchmal etwas unbequem ist. Mit dem Skript reicht es, die Maus über die Adressleiste zu bewegen und das Mausrad zu drehen (und die 5%-Abstufung gefällt mit ebenfalls besser).