Beiträge von milupo
-
-
-
Nein, alle haben ihren eigenen Platz. Es gibt ein Installationsverzeichnis und Profil für die obersorbische Finalversion, es gibt ein Installationsverzeichnis und Profil für das obersorbische Nightly, es gibt ein Installationsverzeichnis und Profil für die niedersorbische Finalversion, es gibt ein Installationsverzeichnis und Profil für das niedersorbische Nightly, es gibt ein Installationsverzeichnis und Profil für die deutsche Finalversion und es gibt ein Installationsverzeichnis und Profil für das deutsche Nightly.
Getrennter geht es nicht. Höchstens jede auf einem eigenen Computer.

-
Ich habe da ein merkwürdiges, nur sporadisch auftretendes Problem(-chen). Ich habe 6 Firefox-Versionen installiert, in Obersorbisch, Niedersorbisch und Deutsch - alle als Finalversion und Nightly. Jede der Versionen hat ihr eigenes Installationsverzeichnis und Profilverzeichnis. Am häufigsten nutze ich das obersorbische Nightly. Jetzt kommt das Merkwürdige: Manchmal stürzt im Hintergrund eine andere Sprachversion als die obersorbische ab. Der Absturzmelder ist dann im Hintergrund in einer der beiden anderen Sprachen, also in Niedersorbisch oder, wie heute, in Deutsch. Wie kann das sein? Kann denn nicht eigentlich nur eine gestartete Version abstürzen?

-
als ich die Beiträge von milupo
Welche Beiträge? Ich kann mich nur an ein Mal erinnern, als ich das Wort missbrauchen verwendet hatte und zwar als sich nach einer Reihe von Beiträgen herausstellte, dass du die Lesezeichenleiste als Symbolleiste „missbrauchst“. Gemeint war, dass du die Lesezeichenleiste zweckentfremdest. Und das ist auch jetzt noch meine Meinung.
-
ich mach immer das gleiche, keine Ahnung warum 25% daneben gehen
Dateianhänge --> Hochladen --> Im Öffnen-Dialog auf Öffnen klicken --> Im Antwortenfenster klicken, um Position des Screenshots festzulegen --> Auf Vorschau einfügen klicken --> (eventuell noch Texteingeben) --> Auf Schaltfläche Antworten klicken
-
Zu viel entfernt.
Ich hätte fast zu wenig entfernt - nämlich nur JSON.parse und nicht mit die zugehörigen runden Klammern. Das ist mir aber noch rechtzeitig aufgefallen. Dabei wäre es so einfach gewesen - einfach nur die Skriptzeilen durch aborix' Zeilen ersetzen.
-
-
ja ja ja ja!!!!!!
Vielen DankWoran hat's denn bei dir gelegen?
-
Hier leider nicht.
Keine Ahnung wieso.
Hallo Endor,
vergleiche doch mal:
JavaScript
Alles anzeigen// ==UserScript== // @name UndoCloseTabButtonN // @description 閉じたタブを復元するツールバーボタン&タブバーの空き上の中クリックで最後に閉じたタブを復元 // @version 1.2.5 // @include main // @charset UTF-8 // @note 2019/01/23 Fx66でタブバー中クリックが効かないのを修正 // @note 2019/07/04 Fx69 // @note 2019/09/03 Fx70 // @note 2019/12/09 Fx72 // ==/UserScript== // アイコン初期位置はタブバーです (function() { "use strict"; const useTabbarMiddleClick = true; // タブバーの空き・タブ追加ボタン上の中クリックで最後に閉じたタブを復元するか? const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; window.ucjsUndoCloseTabButtonService = { prepareMenu(event) { const doc = (event.view && event.view.document) || document; const menu = event.originalTarget; this.removeChilds(menu); // 閉じたタブ let data = SessionStore.getClosedTabData(window); const tabLength = data.length; for (let i = 0; i < tabLength; i++) { const item = data[i]; const m = this.createFaviconMenuitem(doc, item.title, item.image, i, this.undoTab); const state = item.state; let idx = state.index; if (idx == 0) idx = state.entries.length; if (--idx >= 0 && state.entries[idx]) m.setAttribute("targetURI", state.entries[idx].url); menu.appendChild(m); } // 閉じたウィンドウ data = SessionStore.getClosedWindowData(); const winLength = data.length; if (winLength > 0) { if (tabLength > 0) menu.appendChild(this.$C(doc, "menuseparator")); menu.appendChild(this.$C(doc, "menuitem", { disabled: true, label: "Geschlossene Fenster" })); for (let i = 0; i < winLength; i++) { const item = data[i]; let title = item.title; const tabsCount = item.tabs.length - 1; if (tabsCount > 0) title += " (他:" + tabsCount + ")"; const tab = item.tabs[item.selected - 1]; const m = this.createFaviconMenuitem(doc, title, tab.image, i, this.undoWindow); menu.appendChild(m); } } if (tabLength + winLength === 0) { /* menu.appendChild(this.$C(doc, "menuitem", { disabled: true, label : "履歴がありません" }));*/ event.preventDefault(); } }, createFaviconMenuitem(doc, label, icon, value, command) { const attr = { class: "menuitem-iconic bookmark-item menuitem-with-favicon", label: label, value: value }; if (icon) { if (/^https?:/.test(icon)) icon = "moz-anno:favicon:" + icon; attr.image = icon; } const m = this.$C(doc, "menuitem", attr); m.addEventListener("command", command, false); return m; }, undoTab(event) { undoCloseTab(event.originalTarget.getAttribute("value")); }, undoWindow(event) { undoCloseWindow(event.originalTarget.getAttribute("value")); }, removeChilds(element) { const range = document.createRange(); range.selectNodeContents(element); range.deleteContents(); }, onClick(event) { if (event.button === 1) { switch (event.originalTarget.localName) { case "box": // -Fx65 case "scrollbox": // Fx66- case "toolbarbutton": event.preventDefault(); event.stopPropagation(); undoCloseTab(); break; } } }, $C(doc, tag, attrs) { const e = tag instanceof Node? tag: doc.createElementNS(XULNS, tag); if (attrs) { Object.entries(attrs).forEach(([key, value]) => e.setAttribute(key, value)); } return e; }, }; function run() { if (useTabbarMiddleClick) { gBrowser.tabContainer.addEventListener("click", ucjsUndoCloseTabButtonService.onClick, true); } const buttonId = "ucjs-undo-close-tab-button"; if (document.getElementById(buttonId)) { return; } try { Cu.import("resource:///modules/CustomizableUI.jsm"); CustomizableUI.createWidget({ id : buttonId, defaultArea : CustomizableUI.AREA_TABSTRIP, type : "custom", onBuild : doc => { const btn = ucjsUndoCloseTabButtonService.$C(doc, "toolbarbutton", { id : buttonId, class : "toolbarbutton-1 chromeclass-toolbar-additional", type : "menu", anchor : "dropmarker", label: "Geschlossene Tabs", tooltiptext: "Geschlossene Tabs wieder herstellen", image : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADRklEQVRYhcWV32tbZRjHc7ELL3bRP8ELL7zohTeCl70IijhEkJcWdmcdSFDBoWydlIZSsE7tLFLowLqs1YKpdCXM1bhhxM11SsuMZml2znkW94vRJOc9OusuZpKPF6fnNMlJNtvE7IXv3fu+38/7/HpDoTZXCvaI5nC79+xq5R16xOGsaPJdN7c0vZbGEg1dBxDNPtFsbpl3F0AcRkSDZVOdSHYR4EqBveKwIBpyRSoH5yE87gPcMYv0ebI0vXmHno6Z5x0et2wyouHHa7B/2jWvAWilm+JwzNL07tpcSoQtm5JoSKThxYlt8/A4fH4pqETaBfVBbMriMJKCPTsyt0q8LpqyaJj6Dp49Wm/+MKlP4MNvIFegIhpMm5+ulnjyocb5PI+JwwnRsF6geuSrnRk3qn8KljN+RDYNh6ce/PICT4hm3ct5/1R7AJ68rrmmuRxIB9AD9Hmy/2bw+h8kRcMPFveH2oxCeByeOwpzl3yIsUaAPhpWFbDvuQcsG0YTwUuHF4Ma/BSe/6B1XVzZoCKasmnzTAAgFosRjUbrNPflEkbxH0TD7MX6YmzVgtkNGGsCHB53H7IVhbkAQDQaRSkV0FtvH+aX3x1EQzILL09uA2RubXJ8Nu5r6dwKZrGCaHj/TBDghY8gVwTR/PWfAZRSvDJ4gO/XDETD6k031KJh1SwE9h56N4pZrJArbsPWKpl1z+4IQClF/8AA8a9TW2GutgRQSjG/9C2iwRvbjQNsVwCeJqZm/DC3Ajg+G0e0W5gdB1BKMTQ8ym837rYESF78FdFw4LMgQHytAwBKKV6LvMHy+cuBNM3Mn0I0/Hy9eUuetzoE4BlOTsdYNQusmgU/NdmNKpGTzWeBaBAHsyMAtfn2Xh1faz3CZy74AMc6BjA5HUM0vHf6weN4aAHWC5SvFklLiae7CrB/Gs7lwLKpmDavNv0L2k1Bs5bz8p5Iu6G/8SfLtcYjWzrxfwEML0LmjluYt+9CucIXnm+o8QfsBMBLH7vhHktsj1yzVGFxOUW1wS8EEIlEdmXaqgsatZK9xZsH36nbH4lEOgtQOwcupPOcXclwcuE0Q8Oj9A8MBPbXARiGQSaT6aoMw/ABUo9SoUe9/gWm1ZHCwkU2TQAAAABJRU5ErkJggg==", onclick : "ucjsUndoCloseTabButtonService.onClick(event);", oncontextmenu : "event.preventDefault();", }); const menu = ucjsUndoCloseTabButtonService.$C(doc, "menupopup", { tooltip : "bhTooltip", popupsinherittooltip: "true", oncontextmenu : "event.preventDefault();", onpopupshowing : "ucjsUndoCloseTabButtonService.prepareMenu(event);", }); btn.appendChild(menu); return btn; }, }); } catch (e) {} } if (gBrowserInit.delayedStartupFinished) { run(); } else { const OBS_TOPIC = "browser-delayed-startup-finished"; const delayedStartupFinished = (subject, topic) => { if (topic === OBS_TOPIC && subject === window) { Services.obs.removeObserver(delayedStartupFinished, topic); run(); } }; Services.obs.addObserver(delayedStartupFinished, OBS_TOPIC); } })(); -
Ich verwende ein Benutzerskript, habe aber in der Regel nur eine bescheidene Anzahl an Tabs offen. Maximal eine Bildschirmbreite.
JavaScript
Alles anzeigen(function() { if (location != 'chrome://browser/content/browser.xhtml') return; const scrollRight = true; const wrap = true; const dirFactor = scrollRight ? 1 : -1; gBrowser.tabContainer.addEventListener('wheel', function(event) { //event.preventDefault(); event.stopPropagation(); let dir = dirFactor * Math.sign(event.deltaY); //setTimeout(function() { gBrowser.tabContainer.advanceSelectedTab(dir, wrap); //}, 0); }, true); })(); -
Ja, du hast recht. Ohne JSON.parse erscheint das Linksklick-Menü.
-
Es scheint, dass das Skript auch so noch funktioniert. Ich hatte nicht gleich gesehen, dass das Symbol bei mir ganz rechts auf der Tableiste erschien (im Skript steht auch AREA_TABSTRIP). Ich habe das Anpassen-Fenster geöffnet und das Symbol in die Navigationsleiste bzw. dann in eine per Skript erzeugte Leiste geschoben. Einen Tab geschlossen und per Mittelklick auf das Symbol wieder geöffnet.
Gerade probiert: Auch in der Tableiste funktioniert das Skript.
-
Dieses Script funktioniert hier ab Firefox 95 auch nicht mehr:
UndoCloseTabButtonN.uc.js
Ja, im Moment sehe ich aber auch noch nicht, wo man etwas ändern müsste.
-
Auch in Firefox 95 beta funktioniert es so wieder.
Hatte wohl vorher noch niemand vermisst.

-
Vielen Dank, so funktioniert es wieder.
Gern geschehen.
-
Danke für Deine Mühe.
Bitte. Aber nicht so voreilig, jetzt kommt die Lösung:
Die ID webDeveloperMenu in Zeile 13 gibt es im Nightly nicht mehr in der browser.xhtml. Stattdessen gibt es jetzt die ID browserToolsMenu. -
Ach, ich hatte bei Fx 94.0.1 vergessen, den Pfad zurückzusetzen, sprich, auf den ohne /loader/. Dort funktioniert es also wirklich. Beim Nightly, hm. Ich werde mich mal in der browser/omni.ja auf die Suche machen.
-
Es clont das gleichnamige Menü von Extras
ins Rechtsklick Kontextmenü.In welches Kontextmenü?
-
Ich schrieb ja das die Anzeige in der Leiste gelöscht wird. Wird nur die Anzeige gelöscht?
Das hast du nicht geschrieben, dass da etwas gelöscht wird. Im Gegenteil, du hast gefragt, wozu die Schaltfläche Löschen gut ist.
Hallo zusammen,
ich habe da eine Frage.
Was bewirkt der Löchen Button im Tab von dem oben genanntem Script?