Kann man das auch erweitern, so das auch in der Lesezeichen-Sidebar die Ordner entsprechend ausgestattet werden?
hm....
Kann man das auch erweitern, so das auch in der Lesezeichen-Sidebar die Ordner entsprechend ausgestattet werden?
hm....
Hallo zusammen.
Seit Firefox 112 will dieses Script hier nicht mehr:
newTabButtonUndoTabList.uc.js
Hallo Endor,
das von dir gepostete Skript funktioniert bei mir auch in älteren Firefox-Versionen nicht (102esr/91esr). Da sind etliche Sachen drin, die schon seit geraumer Zeit nicht mehr funktioniert haben müssten. Manche Änderungen wurden schon vor mehr als 10Jahren! (z.B. SessionStore-Objekt anstelle nsISessionStore-Service) durchgeführt.
Ich habe jetzt an etlichen Stellen Anpassungen vorgenommen und es funktioniert jetzt mit 2 Einschränkungen:
1) Der Neue-Tab-Button muss sich in der Tab-Leiste befinden. Als Button in einer anderen Leiste funktioniert es jetzt noch nicht.
2) Die Icons werden nicht immer dargestellt (Bild.de geht komischerweise bei mir allerdings schon). Da weiß ich nicht, woran das liegt...
Bitte mal testen:
// ==UserScript==
// @name newTabButtonUndoTabList.uc.js
// @description Bei Rechtsklick auf die Neuen Tab Schaltfläche, wird im Kontextmenü,
// @description der Eintrag zum Wiederherstellen des zuletzt geschlossenen Tabs angezeigt.
// @include main
// ==/UserScript==
(function () {
if (!window.gBrowser){
return;
}
gBrowser.tabContainer.addEventListener('click', function (e) {
if (e.originalTarget.id != 'tabs-newtab-button') return;
switch (e.button) {
case 1:
undoCloseTab(0);
break;
case 2:
UCT.makePopup(e);
e.preventDefault();
break;
}
}, false);
})();
var UCT = {
init: function () {
var mp = document.createXULElement("menupopup");
mp.id = "undo-close-tab-list";
mp.setAttribute("onpopupshowing", "UCT.onpopupshowing(event);");
mp.setAttribute("placespopup", true);
mp.setAttribute("tooltip", "bhTooltip");
mp.setAttribute("popupsinherittooltip", true);
document?.getElementById("mainPopupSet")?.appendChild(mp);
},
makePopup: function (e) {
if (SessionStore.getClosedTabCount(window) != 0) {
document.getElementById("undo-close-tab-list").openPopupAtScreen(e.screenX +2, e.screenY +2, false);
}
else
{
console.log("--- Es gibt keinen Tab, der wiederhergestellt werden kann ---");
}
},
onpopupshowing: function (e) {
var popup = e.target;
while (popup.hasChildNodes())
popup.removeChild(popup.firstChild);
let undoItems = SessionStore.getClosedTabData(window);
undoItems.map(function (item, id) {
var m = document.createXULElement('menuitem');
m.setAttribute('label', item.title);
m.setAttribute('image', item.image ? 'moz-anno:favicon:' + item.image : '');
m.setAttribute('class', 'menuitem-iconic bookmark-item');
m.setAttribute('oncommand', 'undoCloseTab(' + id + ')');
popup.appendChild(m);
});
popup.appendChild(document.createXULElement("menuseparator"));
m = document.createXULElement("menuitem");
m.setAttribute("label", "Chronik in der Sidebar öffnen");
m.setAttribute("image", "chrome://browser/skin/places/history.svg");
m.setAttribute("class", "menuitem-iconic");
m.setAttribute("oncommand", "toggleSidebar('viewHistorySidebar');");
popup.appendChild(m);
},
};
setTimeout(function() {
UCT.init();
},250);
Alles anzeigen
Gern geschehen...
Mit dieser Version sollten jetzt auch die Favicons funktionieren:
// ==UserScript==
// @name newTabButtonUndoTabList.uc.js
// @description Bei Rechtsklick auf die Neuen Tab Schaltfläche, wird im Kontextmenü,
// @description der Eintrag zum Wiederherstellen des zuletzt geschlossenen Tabs angezeigt.
// @include main
// ==/UserScript==
(function () {
if (!window.gBrowser){
return;
}
gBrowser.tabContainer.addEventListener('click', function (e) {
if (e.originalTarget.id != 'tabs-newtab-button') return;
switch (e.button) {
case 1:
undoCloseTab(0);
break;
case 2:
UCT.makePopup(e);
e.preventDefault();
break;
}
}, false);
})();
var UCT = {
init: function () {
var mp = document.createXULElement("menupopup");
mp.id = "undo-close-tab-list";
mp.setAttribute("onpopupshowing", "UCT.onpopupshowing(event);");
mp.setAttribute("placespopup", true);
mp.setAttribute("tooltip", "bhTooltip");
mp.setAttribute("popupsinherittooltip", true);
document?.getElementById("mainPopupSet")?.appendChild(mp);
},
makePopup: function (e) {
if (SessionStore.getClosedTabCount(window) != 0) {
document.getElementById("undo-close-tab-list").openPopupAtScreen(e.screenX +2, e.screenY +2, false);
}
else
{
console.log("--- Es gibt keinen Tab, der wiederhergestellt werden kann ---");
}
},
onpopupshowing: function (e) {
var popup = e.target;
while (popup.hasChildNodes())
popup.removeChild(popup.firstChild);
let undoItems = SessionStore.getClosedTabData(window);
undoItems.map(function (item, id) {
var m = document.createXULElement('menuitem');
m.setAttribute('label', item.title);
m.setAttribute('image', item.image );
m.setAttribute('class', 'menuitem-iconic bookmark-item');
m.setAttribute('oncommand', 'undoCloseTab(' + id + ')');
popup.appendChild(m);
});
popup.appendChild(document.createXULElement("menuseparator"));
m = document.createXULElement("menuitem");
m.setAttribute("label", "Chronik in der Sidebar öffnen");
m.setAttribute("image", "chrome://browser/skin/places/history.svg");
m.setAttribute("class", "menuitem-iconic");
m.setAttribute("oncommand", "toggleSidebar('viewHistorySidebar');");
popup.appendChild(m);
},
};
setTimeout(function() {
UCT.init();
},250);
Alles anzeigen
...Mit dieser Version sollten jetzt auch die Favicons funktionieren:
...
Cool, Danke.
Funktioniert bestens.
Hallo BrokenHeart .
Vielen Dank!!!
Funktioniert bestens.
Im Kontextmenü ganz unten ist ja der Eintrag:
Chronik in der Sidebar öffnen
der ging auch noch nicht und das dazu gehörende Icon wurde auch nicht angezeigt.
Das habe ich beides noch repariert.
Hier das ganze Script:
// ==UserScript==
// @name newTabButtonUndoTabList.uc.js
// @description Bei Rechtsklick auf die Neuen Tab Schaltfläche, wird im Kontextmenü,
// @description der Eintrag zum Wiederherstellen des zuletzt geschlossenen Tabs angezeigt.
// @description Von BrokenHeart - camp-firefox.de wieder lauffähig gemacht
// @adresse https://www.camp-firefox.de/forum/thema/112673-userchrome-js-scripte-f%C3%BCr-den-fuchs-diskussion/?postID=1223749#post1223749
// @include main
// ==/UserScript==
(function () {
if (!window.gBrowser){
return;
}
gBrowser.tabContainer.addEventListener('click', function (e) {
if (e.originalTarget.id != 'tabs-newtab-button') return;
switch (e.button) {
case 1:
undoCloseTab(0);
break;
case 2:
UCT.makePopup(e);
event.preventDefault();
break;
}
}, false);
})();
var UCT = {
init: function () {
var mp = document.createXULElement("menupopup");
mp.id = "undo-close-tab-list";
mp.setAttribute("onpopupshowing", "UCT.onpopupshowing(event);");
mp.setAttribute("placespopup", true);
mp.setAttribute("tooltip", "bhTooltip");
mp.setAttribute("popupsinherittooltip", true);
document?.getElementById("mainPopupSet")?.appendChild(mp);
},
makePopup: function (e) {
if (SessionStore.getClosedTabCount(window) != 0) {
document.getElementById("undo-close-tab-list").openPopupAtScreen(e.screenX +2, e.screenY +2, false);
}
else
{
console.log("--- Es gibt keinen Tab, der wiederhergestellt werden kann ---");
}
},
onpopupshowing: function (e) {
var popup = e.target;
while (popup.hasChildNodes())
popup.removeChild(popup.firstChild);
let undoItems = SessionStore.getClosedTabData(window);
undoItems.map(function (item, id) {
var m = document.createXULElement('menuitem');
m.setAttribute('label', item.title);
m.setAttribute('image', item.image );
m.setAttribute('class', 'menuitem-iconic bookmark-item');
m.setAttribute('oncommand', 'undoCloseTab(' + id + ')');
popup.appendChild(m);
});
popup.appendChild(document.createXULElement("menuseparator"));
m = document.createXULElement("menuitem");
m.setAttribute("label", "Chronik in der Sidebar öffnen");
m.setAttribute("image", "chrome://browser/skin/history.svg");
m.setAttribute("class", "menuitem-iconic");
m.setAttribute("oncommand", "SidebarUI.toggle('viewHistorySidebar');");
popup.appendChild(m);
},
};
setTimeout(function() {
UCT.init();
},250);
Alles anzeigen
Mfg.
Endor
Das habe ich beides noch repariert.
Sehr gut , hatte ich ganz übersehen... .
Chronik in der Sidebar öffnen
der ging auch noch nicht und das dazu gehörende Icon wurde auch nicht angezeigt.
Das habe ich beides noch repariert.
Hm, weder Dein repariertes Script,
Sehr gut , hatte ich ganz übersehen... .
noch Dein wiederhergestelltes Script funktioniert hier, bei mir bleibt das ↓ erhalten.
Kann man das auch erweitern, so das auch in der Lesezeichen-Sidebar die Ordner entsprechend ausgestattet werden?
hm....
Jo, aber vielleicht geht ja trotzdem was...
noch Dein wiederhergestelltes Script funktioniert hier,
Kein Problem hier.
Rechtsklick auf das + ergibt:
Dein repariertes Script
Dann ist da was nicht i.O., hier funktionieren beide Scripte.
Noch als Ergänzung, hier ist es so, wenn das Script im Ordner chrome vorhanden ist, dann passiert nach Neustart bei einem Rechtsklick nichts mehr, es wird also nicht mehr das von Dir gezeigte Menü aufgemacht.
Kein Problem hier.
Rechtsklick auf das + ergibt:
Weißt Du mit welcher Pref ich die Tab-Umgebung abschalte? An den entsprechenden Haken in den Einstellungen komme ich nicht ran, ist durch mehrere Add-ons nicht abzuschalten.
user_pref("privacy.userContext.enabled",true);
Hoffe das passt.
Ist bei mir aber auf true und das Script funktioniert hier einwandfrei.
Mfg.
Endor
Wenn Erweiterungen genutzt werden, welche Tab-Umgebungen voraussetzen, funktionieren diese natürlich dann nicht mehr.
Wenn Erweiterungen genutzt werden, welche Tab-Umgebungen voraussetzen, funktionieren diese natürlich dann nicht mehr.
Eine Erweiterung wills tatsächlich nicht ohne tun, also geht das Script gen Jordan.
Hoffe das passt.
Die Tab-Umgebung lässt sich so selbst festgenagelt in der user.js nicht abschalten, eine Erweiterung setzt es in der Tat voraus.
Bei mir tut es das Skript nur teilweise!
Bei Rechtsklick auf das +
öffnet sich das Kontextmenü mit den geschlossenen Seiten,
aber das ganz unten der Eintrag
Im Kontextmenü ganz unten ist ja der Eintrag Chronik in der Sidebar öffnen erscheint hier nicht!
Habe dies auch in meinem Testprofil ohne weitere Anpassungen,
weder andere JavaScripts noch CSS getestet!
Jemand eine Idee?
Jemand eine Idee?
Du nutzt dieses Skript?
Gerade mal getestet: Hier funktioniert das Skript einwandfrei...
Kein Problem hier.
Hier auch nicht, extra in einem anderen Profil erneut getestet.
Jemand eine Idee?
Du nutzt dieses Skript?
BeitragRE: userChrome.js Scripte für den Fuchs (Diskussion)
Hallo BrokenHeart .
Vielen Dank!!!
Funktioniert bestens.
Im Kontextmenü ganz unten ist ja der Eintrag:
Chronik in der Sidebar öffnen
der ging auch noch nicht und das dazu gehörende Icon wurde auch nicht angezeigt.
Das habe ich beides noch repariert.
Hier das ganze Script:
(Quelltext, 80 Zeilen)
Mfg.
EndorEndor15. April 2023 um 14:07
Ja
Das Merkwürdige ist, es funktioniert in keinem meiner Profile.
Und es ist egal, ob ich andere Skripte und/oder CSS-Code nutze oder nicht!
Selbst in einem frisch eingerichteten neuen Profil, in dem andere Skripte laufen,
wenn ich sie einbinde, funktioniert dieses Skript nur eingeschränkt.
Ok, ist jetzt nicht so schlimm!
Habe kurzerhand den unnützen Separator per CSS ausgeblendet.
Kann mir jemand verraten, wie ich
/* Separator aus neuem "UndoTabList-Skript" ausblenden */
#undo-close-tab-list > menuseparator {
display: none !important;
}
in das Skript integrieren kann?
Mit var css =` .... `; habe ich es nicht hinbekommen.
Wahrscheinlich muss ich da noch etwas Code anhängen.