Beiträge von aborix
-
-
Hallo,
vielleicht liegt es an browser.link.open_newwindow.restriction. Bei 2 können noch Popups auftreten, bei 0 nicht.
-
Was ich vielleicht noch brauchen kann, hebe ich mir auf.
Das vorliegende Skript habe ich auch im Hinblick auf eine neue Version von Open Link in New Tab with Left DoubleClick verfasst. Ein paar Kleinigkeiten sind noch zu ändern und dann gibt es ein Update.
-
Alles Gute!
-
Ich habe den Fehler, warum es bei DuckDuckGo nicht klappt, gefunden.
Falls es jemanden interessiert, das korrigierte Skript:Code
Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; let frameScript = function() { const delay = 500; let delayedClick = false; let timeoutId; addEventListener('click', onClick, true); function onClick(event) { if (event.button != 0 || event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) return; if (delayedClick) { delayedClick = false; return; }; let link = findLink(event.target); if (!link) return; event.preventDefault(); event.stopPropagation(); clearTimeout(timeoutId); switch (event.detail) { case 1: timeoutId = setTimeout(function() { delayedClick = true; /* in case link.click() doesn't trigger click event */ setTimeout(function() { delayedClick = false; }, 100); link.click(); }, delay); break; case 2: sendAsyncMessage('DoubleClickOpenLinkInNewTab', link.href); break; }; }; function findLink(element) { switch (element.tagName.toUpperCase()) { case 'A': return element; case 'AREA': if (element.href) { return element; } else { return findLink(element.parentNode); }; case 'B': case 'I': case 'SPAN': case 'SMALL': case 'STRONG': case 'EM': case 'BIG': case 'SUB': case 'SUP': case 'IMG': case 'S': case 'DIV': case 'NOBR': case 'CODE': return findLink(element.parentNode); default: return null; }; }; }; let frameScriptURI = 'data:,(' + frameScript.toString() + ')()'; window.messageManager.loadFrameScript(frameScriptURI, true); window.messageManager.addMessageListener('DoubleClickOpenLinkInNewTab', function(message) { openUILinkIn(message.data, 'tabshifted'); }); })();
-
Wenn es auch ein Skript sein darf, teste das folgende.
In Zeile 8 trage bei
const delay =
die bei dir übliche maximale Dauer eines Doppelklicks ein.Code
Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; let frameScript = function() { const delay = 500; let delayedClick = false; let timeoutId; addEventListener('click', onClick); function onClick(event) { if (event.button != 0 || event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) return; if (delayedClick) { delayedClick = false; return; }; let link = findLink(event.target); if (!link) return; event.preventDefault(); clearTimeout(timeoutId); switch (event.detail) { case 1: timeoutId = setTimeout(function() { delayedClick = true; /* in case link.click() doesn't trigger click event */ setTimeout(function() { delayedClick = false; }, 100); link.click(); }, delay); break; case 2: sendAsyncMessage('DoubleClickOpenLinkInNewTab', link.href); break; }; }; function findLink(element) { switch (element.tagName.toUpperCase()) { case 'A': return element; case 'AREA': if (element.href) { return element; } else { return findLink(element.parentNode); }; case 'B': case 'I': case 'SPAN': case 'SMALL': case 'STRONG': case 'EM': case 'BIG': case 'SUB': case 'SUP': case 'IMG': case 'S': case 'DIV': case 'NOBR': case 'CODE': return findLink(element.parentNode); default: return null; }; }; }; let frameScriptURI = 'data:,(' + frameScript.toString() + ')()'; window.messageManager.loadFrameScript(frameScriptURI, true); window.messageManager.addMessageListener('DoubleClickOpenLinkInNewTab', function(message) { openUILinkIn(message.data, 'tabshifted'); }); })();
-
-
Umschalt+Mittelklick auf "Alle in Tabs öffnen" oder auf das Ordnersymbol.
-
Alles Gute zum Geburtstag, Sephira!
-
-
Mir ist aufgefallen, dass auch zum letzten aktiven Tab gewechselt wird, wenn man das Ton an/aus-Lautsprechersymbol auf dem aktuellen Tab klickt. Kann man das ausschliessen?Ja:
Code
Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; let previousTab = gBrowser.selectedTab; let selectedTab = gBrowser.selectedTab; gBrowser.tabContainer.addEventListener('TabSelect', function(event) { setTimeout(function() { previousTab = event.detail.previousTab; selectedTab = event.target; }, 200); }); gBrowser.tabContainer.addEventListener('mousedown', function(event) { if (event.target == selectedTab && event.originalTarget.localName != 'toolbarbutton' && event.originalTarget.className != 'tab-icon-sound' && event.button == 0 && event.detail == 1) { gBrowser.selectedTab = previousTab; }; }); })();
-
Schaun mer mal:
Code
Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; let previousTab = gBrowser.selectedTab; let selectedTab = gBrowser.selectedTab; gBrowser.tabContainer.addEventListener('TabSelect', function(event) { setTimeout(function() { previousTab = event.detail.previousTab; selectedTab = event.target; }, 200); }); gBrowser.tabContainer.addEventListener('mousedown', function(event) { if (event.target == selectedTab && event.originalTarget.localName != 'toolbarbutton' && event.button == 0 && event.detail == 1) { gBrowser.selectedTab = previousTab; }; }); })();
-
Nicht per Klick, sondern über einen neuen Eintrag im Kontextmenü kann man zum vorherigen Tab wechseln. captain chaos wollte das so, s. erster Beitrag. Mit Klick lässt sich auch machen.
-
Aber es funktioniert irgendwie nicht
Geht's etwas genauer?
Auch lässt sich nichts in die Browserkonsole eingeben.
devtools.chrome.enabled muss auf true stehen. -
Ja, ist relativ einfach. Ein entsprechender Eintrag kommt im Kontextmenü hinzu.
Zum Testen den Code in die Browserkonsole eingeben, ohne weitere Vorbereitungen.Code
Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xul') return; let previousTab = gBrowser.selectedTab; gBrowser.tabContainer.addEventListener('TabSelect', function(event) { previousTab = event.detail.previousTab; }); let item = document.createElement('menuitem'); item.setAttribute('label', 'Zum letzten aktiven Tab wechseln'); item.addEventListener('command', function() { gBrowser.selectedTab = previousTab; }); let refItem = document.getElementById('context-savepage'); refItem.parentNode.insertBefore(item, refItem); })();
-
-
-
-
Setze browser.backspace_action auf 2.
-
Nochmal in einem neuen, bis auf das Skript unveränderten, Profil getestet mit diesem Ergebnis:
Beim Öffnen eines neuen Fensters mit Strg+N bleibt die Tableiste.
Wenn man bei zwei offenen Tabs den im Hintergrund schließt, egal ob der linke oder rechte, bleibt sie auch.
Der Wert von browser.tabs.closeWindowWithLastTab ist dabei egal.
Andere Veränderungen im Profil können einen Einfluss haben.Mit dem neuen Skript wird die Tableiste in allen Fällen ausgeblendet.