Alles Gute!
Beiträge von aborix
-
-
-
wenn ich den FF starte und danach gleich wieder schließe kommt keine Warnung mehr.
Wenn nach dem Start nur ein Tab mit der Startseite vorhanden ist, dann soll es ja so sein. Oder möchtest du es in diesem Fall anders haben?
Wenn ich offene Tabs hatte die alle wieder geschlossen wurden dann wird der letzte Tab mit Firefox-Startseite (Standard) angezeigt. Hier kommt auch bei deiner neuen Version die Abfrage.
Im folgenden Skript kommt die Abfrage nicht bei den Seiten about:home und about:newtab. Beides ist die Standard-Startseite.
JavaScript
Alles anzeigen(function() { if (window.__SSi != 'window0') return; const { BrowserGlue } = ChromeUtils.import('resource:///modules/BrowserGlue.jsm'); BrowserGlue.prototype._onQuitRequest = function BG__onQuitRequest(aCancelQuit, aQuitType) { if (aCancelQuit instanceof Ci.nsISupportsPRBool && aCancelQuit.data) { return; } if (aQuitType == "restart" || aQuitType == "os-restart") { return; } var windowcount = 0; var pagecount = 0; for (let win of BrowserWindowTracker.orderedWindows) { if (win.closed) { continue; } windowcount++; let tabbrowser = win.gBrowser; if (tabbrowser) { pagecount += tabbrowser.browsers.length - tabbrowser._numPinnedTabs - tabbrowser._removingTabs.length; } } if (!aQuitType) { aQuitType = "quit"; } if (!Services.prefs.getBoolPref("browser.warnOnQuit")) { return; } let sessionWillBeRestored = Services.prefs.getIntPref("browser.startup.page") == 3 || Services.prefs.getBoolPref("browser.sessionstore.resume_session_once"); if (sessionWillBeRestored) { if ( !Services.prefs.getBoolPref("browser.sessionstore.warnOnQuit", false) ) { return; } } else if (!Services.prefs.getBoolPref("browser.tabs.warnOnClose")) { return; } let win = BrowserWindowTracker.getTopWindow(); let warningMessage; if (windowcount > 1) { let tabSubstring = gTabBrowserBundle.GetStringFromName( "tabs.closeWarningMultipleWindowsTabSnippet" ); tabSubstring = PluralForm.get(pagecount, tabSubstring).replace( /#1/, pagecount ); let stringID = sessionWillBeRestored ? "tabs.closeWarningMultipleWindowsSessionRestore2" : "tabs.closeWarningMultipleWindows"; let windowString = gTabBrowserBundle.GetStringFromName(stringID); windowString = PluralForm.get(windowcount, windowString).replace( /#1/, windowcount ); warningMessage = windowString.replace(/%(?:1\\$)?S/i, tabSubstring); } else { let stringID = sessionWillBeRestored ? "tabs.closeWarningMultipleSessionRestore2" : "tabs.closeWarningMultiple"; warningMessage = gTabBrowserBundle.GetStringFromName(stringID); warningMessage = PluralForm.get(pagecount, warningMessage).replace( "#1", pagecount ); } let warnOnClose = { value: true }; let titleId = AppConstants.platform == "win" ? "tabs.closeAndQuitTitleTabsWin" : "tabs.closeAndQuitTitleTabs"; let flags = Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 + Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1; let checkboxLabel = !sessionWillBeRestored ? gTabBrowserBundle.GetStringFromName("tabs.closeWarningPromptMe") : null; let buttonPressed = 0; if (pagecount < 2) { let url = win.gBrowser.currentURI.spec; if (url != "about:home" && url != "about:newtab") { buttonPressed = Services.prompt.confirmEx( win, "Beenden und Tab schließen?", "Sie sind dabei, einen Tab und das Fenster zu schließen. " + "Soll dieser Vorgang fortgesetzt werden?", flags, "Fenster schließen", null, null, null, warnOnClose ); } } else { buttonPressed = Services.prompt.confirmEx( win, gTabBrowserBundle.GetStringFromName(titleId), warningMessage, flags, gTabBrowserBundle.GetStringFromName("tabs.closeButtonMultiple"), null, null, checkboxLabel, warnOnClose ); } if (!sessionWillBeRestored && buttonPressed == 0 && !warnOnClose.value) { Services.prefs.setBoolPref("browser.tabs.warnOnClose", false); } aCancelQuit.data = buttonPressed != 0; }; })();
-
Ich habe das Skript aus #11 dahingehend abgeändert. Mit dem Skript aus #8 ist das natürlich ebenso machbar.
Teste bitte:
JavaScript
Alles anzeigen(function() { if (window.__SSi != 'window0') return; const { BrowserGlue } = ChromeUtils.import('resource:///modules/BrowserGlue.jsm'); BrowserGlue.prototype._onQuitRequest = function BG__onQuitRequest(aCancelQuit, aQuitType) { if (aCancelQuit instanceof Ci.nsISupportsPRBool && aCancelQuit.data) { return; } if (aQuitType == "restart" || aQuitType == "os-restart") { return; } var windowcount = 0; var pagecount = 0; for (let win of BrowserWindowTracker.orderedWindows) { if (win.closed) { continue; } windowcount++; let tabbrowser = win.gBrowser; if (tabbrowser) { pagecount += tabbrowser.browsers.length - tabbrowser._numPinnedTabs - tabbrowser._removingTabs.length; } } if (!aQuitType) { aQuitType = "quit"; } if (!Services.prefs.getBoolPref("browser.warnOnQuit")) { return; } let sessionWillBeRestored = Services.prefs.getIntPref("browser.startup.page") == 3 || Services.prefs.getBoolPref("browser.sessionstore.resume_session_once"); if (sessionWillBeRestored) { if ( !Services.prefs.getBoolPref("browser.sessionstore.warnOnQuit", false) ) { return; } } else if (!Services.prefs.getBoolPref("browser.tabs.warnOnClose")) { return; } let win = BrowserWindowTracker.getTopWindow(); let warningMessage; if (windowcount > 1) { let tabSubstring = gTabBrowserBundle.GetStringFromName( "tabs.closeWarningMultipleWindowsTabSnippet" ); tabSubstring = PluralForm.get(pagecount, tabSubstring).replace( /#1/, pagecount ); let stringID = sessionWillBeRestored ? "tabs.closeWarningMultipleWindowsSessionRestore2" : "tabs.closeWarningMultipleWindows"; let windowString = gTabBrowserBundle.GetStringFromName(stringID); windowString = PluralForm.get(windowcount, windowString).replace( /#1/, windowcount ); warningMessage = windowString.replace(/%(?:1\\$)?S/i, tabSubstring); } else { let stringID = sessionWillBeRestored ? "tabs.closeWarningMultipleSessionRestore2" : "tabs.closeWarningMultiple"; warningMessage = gTabBrowserBundle.GetStringFromName(stringID); warningMessage = PluralForm.get(pagecount, warningMessage).replace( "#1", pagecount ); } let warnOnClose = { value: true }; let titleId = AppConstants.platform == "win" ? "tabs.closeAndQuitTitleTabsWin" : "tabs.closeAndQuitTitleTabs"; let flags = Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 + Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1; let checkboxLabel = !sessionWillBeRestored ? gTabBrowserBundle.GetStringFromName("tabs.closeWarningPromptMe") : null; let buttonPressed = 0; if (pagecount < 2) { if (win.gBrowser.currentURI.spec != Services.prefs.getCharPref("browser.startup.homepage")) { buttonPressed = Services.prompt.confirmEx( win, "Beenden und Tab schließen?", "Sie sind dabei, einen Tab und das Fenster zu schließen. " + "Soll dieser Vorgang fortgesetzt werden?", flags, "Fenster schließen", null, null, null, warnOnClose ); } } else { buttonPressed = Services.prompt.confirmEx( win, gTabBrowserBundle.GetStringFromName(titleId), warningMessage, flags, gTabBrowserBundle.GetStringFromName("tabs.closeButtonMultiple"), null, null, checkboxLabel, warnOnClose ); } if (!sessionWillBeRestored && buttonPressed == 0 && !warnOnClose.value) { Services.prefs.setBoolPref("browser.tabs.warnOnClose", false); } aCancelQuit.data = buttonPressed != 0; }; })();
-
Selbstverständlich ist das in Ordnung. Andernfalls dürfte man Code nicht öffentlich sichtbar machen, sondern müsste ihn z.B. per PN übermitteln.
Hier noch eine Variante mit einem etwas veränderten Meldungstext. Es wird hervorgehoben, dass mit dem Tab auch das Fenster geschlossen wird.
JavaScript
Alles anzeigen(function() { if (window.__SSi != 'window0') return; const { BrowserGlue } = ChromeUtils.import('resource:///modules/BrowserGlue.jsm'); BrowserGlue.prototype._onQuitRequest = function BG__onQuitRequest(aCancelQuit, aQuitType) { if (aCancelQuit instanceof Ci.nsISupportsPRBool && aCancelQuit.data) { return; } if (aQuitType == "restart" || aQuitType == "os-restart") { return; } var windowcount = 0; var pagecount = 0; for (let win of BrowserWindowTracker.orderedWindows) { if (win.closed) { continue; } windowcount++; let tabbrowser = win.gBrowser; if (tabbrowser) { pagecount += tabbrowser.browsers.length - tabbrowser._numPinnedTabs - tabbrowser._removingTabs.length; } } if (!aQuitType) { aQuitType = "quit"; } if (!Services.prefs.getBoolPref("browser.warnOnQuit")) { return; } let sessionWillBeRestored = Services.prefs.getIntPref("browser.startup.page") == 3 || Services.prefs.getBoolPref("browser.sessionstore.resume_session_once"); if (sessionWillBeRestored) { if ( !Services.prefs.getBoolPref("browser.sessionstore.warnOnQuit", false) ) { return; } } else if (!Services.prefs.getBoolPref("browser.tabs.warnOnClose")) { return; } let win = BrowserWindowTracker.getTopWindow(); let warningMessage; if (windowcount > 1) { let tabSubstring = gTabBrowserBundle.GetStringFromName( "tabs.closeWarningMultipleWindowsTabSnippet" ); tabSubstring = PluralForm.get(pagecount, tabSubstring).replace( /#1/, pagecount ); let stringID = sessionWillBeRestored ? "tabs.closeWarningMultipleWindowsSessionRestore2" : "tabs.closeWarningMultipleWindows"; let windowString = gTabBrowserBundle.GetStringFromName(stringID); windowString = PluralForm.get(windowcount, windowString).replace( /#1/, windowcount ); warningMessage = windowString.replace(/%(?:1\\$)?S/i, tabSubstring); } else { let stringID = sessionWillBeRestored ? "tabs.closeWarningMultipleSessionRestore2" : "tabs.closeWarningMultiple"; warningMessage = gTabBrowserBundle.GetStringFromName(stringID); warningMessage = PluralForm.get(pagecount, warningMessage).replace( "#1", pagecount ); } let warnOnClose = { value: true }; let titleId = AppConstants.platform == "win" ? "tabs.closeAndQuitTitleTabsWin" : "tabs.closeAndQuitTitleTabs"; let flags = Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 + Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1; let checkboxLabel = !sessionWillBeRestored ? gTabBrowserBundle.GetStringFromName("tabs.closeWarningPromptMe") : null; let buttonPressed; if (pagecount < 2) { buttonPressed = Services.prompt.confirmEx( win, "Beenden und Tab schließen?", "Sie sind dabei, einen Tab und das Fenster zu schließen. " + "Soll dieser Vorgang fortgesetzt werden?", flags, "Fenster schließen", null, null, null, warnOnClose ); } else { buttonPressed = Services.prompt.confirmEx( win, gTabBrowserBundle.GetStringFromName(titleId), warningMessage, flags, gTabBrowserBundle.GetStringFromName("tabs.closeButtonMultiple"), null, null, checkboxLabel, warnOnClose ); } if (!sessionWillBeRestored && buttonPressed == 0 && !warnOnClose.value) { Services.prefs.setBoolPref("browser.tabs.warnOnClose", false); } aCancelQuit.data = buttonPressed != 0; }; })();
-
Teste folgendes Skript. Die Warnung bei nur einem Tab erfolgt nicht, wenn noch weitere Fenster offen sind.
JavaScript
Alles anzeigen(function() { if (window.__SSi != 'window0') return; const { BrowserGlue } = ChromeUtils.import('resource:///modules/BrowserGlue.jsm'); BrowserGlue.prototype._onQuitRequest = function BG__onQuitRequest(aCancelQuit, aQuitType) { if (aCancelQuit instanceof Ci.nsISupportsPRBool && aCancelQuit.data) { return; } if (aQuitType == "restart" || aQuitType == "os-restart") { return; } var windowcount = 0; var pagecount = 0; for (let win of BrowserWindowTracker.orderedWindows) { if (win.closed) { continue; } windowcount++; let tabbrowser = win.gBrowser; if (tabbrowser) { pagecount += tabbrowser.browsers.length - tabbrowser._numPinnedTabs - tabbrowser._removingTabs.length; } } //if (pagecount < 2) { // return; //} if (!aQuitType) { aQuitType = "quit"; } if (!Services.prefs.getBoolPref("browser.warnOnQuit")) { return; } let sessionWillBeRestored = Services.prefs.getIntPref("browser.startup.page") == 3 || Services.prefs.getBoolPref("browser.sessionstore.resume_session_once"); if (sessionWillBeRestored) { if ( !Services.prefs.getBoolPref("browser.sessionstore.warnOnQuit", false) ) { return; } } else if (!Services.prefs.getBoolPref("browser.tabs.warnOnClose")) { return; } let win = BrowserWindowTracker.getTopWindow(); let warningMessage; if (windowcount > 1) { let tabSubstring = gTabBrowserBundle.GetStringFromName( "tabs.closeWarningMultipleWindowsTabSnippet" ); tabSubstring = PluralForm.get(pagecount, tabSubstring).replace( /#1/, pagecount ); let stringID = sessionWillBeRestored ? "tabs.closeWarningMultipleWindowsSessionRestore2" : "tabs.closeWarningMultipleWindows"; let windowString = gTabBrowserBundle.GetStringFromName(stringID); windowString = PluralForm.get(windowcount, windowString).replace( /#1/, windowcount ); warningMessage = windowString.replace(/%(?:1\\$)?S/i, tabSubstring); } else { let stringID = sessionWillBeRestored ? "tabs.closeWarningMultipleSessionRestore2" : "tabs.closeWarningMultiple"; warningMessage = gTabBrowserBundle.GetStringFromName(stringID); warningMessage = PluralForm.get(pagecount, warningMessage).replace( "#1", pagecount ); } let warnOnClose = { value: true }; let titleId = AppConstants.platform == "win" ? "tabs.closeAndQuitTitleTabsWin" : "tabs.closeAndQuitTitleTabs"; let flags = Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 + Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1; let checkboxLabel = !sessionWillBeRestored ? gTabBrowserBundle.GetStringFromName("tabs.closeWarningPromptMe") : null; let stringID = pagecount < 2 ? "tabs.closeTab" : "tabs.closeButtonMultiple"; let buttonPressed = Services.prompt.confirmEx( win, gTabBrowserBundle.GetStringFromName(titleId), warningMessage, flags, //gTabBrowserBundle.GetStringFromName("tabs.closeButtonMultiple"), gTabBrowserBundle.GetStringFromName(stringID), null, null, checkboxLabel, warnOnClose ); if (!sessionWillBeRestored && buttonPressed == 0 && !warnOnClose.value) { Services.prefs.setBoolPref("browser.tabs.warnOnClose", false); } aCancelQuit.data = buttonPressed != 0; }; })();
-
Alles Gute, und Gesundheit!
-
-
Teste:
CSS
Alles anzeigen#headNav { position: static !important; margin-top: -40px !important; } #search-v { position: static !important; width: 435px !important; } #search-v + button { position: static !important; min-height: 32px !important; margin-top: -1px !important; } #quicksearch { width: 504px !important; }
-
Und durch irgendein Script oder so kann man das Ziel "Firefox minimiert in der Taskleiste starten lassen" nicht erreichen ?
Teste mal:
-
Ein Skript-Variante ohne Timeout-Wert:
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; function setFunction() { PlacesViewBase.prototype._mayAddCommandsItems = function PVB__mayAddCommandsItems(aPopup) { if (aPopup == this._rootElt) return; let hasMultipleURIs = false; if (aPopup._placesNode.childCount > 0) { let currentChild = aPopup.firstElementChild; let numURINodes = 0; while (currentChild) { if (currentChild.localName == "menuitem" && currentChild._placesNode) { if (++numURINodes == 2) break; } currentChild = currentChild.nextElementSibling; } hasMultipleURIs = numURINodes > 1; } if (!hasMultipleURIs) aPopup.setAttribute("nofooterpopup", "true"); else aPopup.removeAttribute("nofooterpopup"); if (!hasMultipleURIs) { if (aPopup._endOptOpenAllInTabs) { aPopup.removeChild(aPopup._endOptOpenAllInTabs); aPopup._endOptOpenAllInTabs = null; aPopup.removeChild(aPopup._endOptSeparator); aPopup._endOptSeparator = null; } } else if (!aPopup._endOptOpenAllInTabs) { aPopup._endOptSeparator = document.createXULElement("menuseparator"); aPopup._endOptSeparator.className = "bookmarks-actions-menuseparator"; aPopup.appendChild(aPopup._endOptSeparator); aPopup._endOptOpenAllInTabs = document.createXULElement("menuitem"); aPopup._endOptOpenAllInTabs.className = "openintabs-menuitem"; if (typeof this.options.extraClasses.entry == "string") { aPopup._endOptOpenAllInTabs.classList.add( this.options.extraClasses.entry ); } if (typeof this.options.extraClasses.footer == "string") { aPopup._endOptOpenAllInTabs.classList.add( this.options.extraClasses.footer ); } aPopup._endOptOpenAllInTabs.setAttribute( "oncommand", "PlacesUIUtils.openMultipleLinksInTabs(this.parentNode._placesNode, event, " + "PlacesUIUtils.getViewForNode(this));" ); aPopup._endOptOpenAllInTabs.setAttribute( "onclick", "checkForMiddleClick(this, event); event.stopPropagation();" ); let menuitemsCount = 0; for (let node of aPopup.childNodes) { if (node.localName == 'menuitem') menuitemsCount++; } aPopup._endOptOpenAllInTabs.setAttribute( "label", " " + menuitemsCount + " <- " + gNavigatorBundle.getString("menuOpenAllInTabs.label") ); aPopup.appendChild(aPopup._endOptOpenAllInTabs); } } } let intID = setInterval(function() { if (window.PlacesViewBase) { clearInterval(intID); setFunction(); } }, 500); })();
-
Alles Gute!
-
id ist besser. Eine ID hat nur ein Element, einer Klasse können mehere Elemente angehören. Der Button "Fertig" hat auch die gleiche Klasse wie der Button "Lesezeichen entfernen". Wenn du nur den Klassennamen verwendest, werden beide Elemente angesprochen.
-
Teste:
JavaScript
Alles anzeigen(function() { if (!window.gBrowser) return; if (window.__SSi == 'window0') { let listener = function(events) { for (let event of events) { if (event.itemType == PlacesUtils.bookmarks.TYPE_BOOKMARK) { PlacesUtils.bookmarks.moveToFolder([event.guid], event.parentGuid, 0); } } } PlacesUtils.observers.addListener(['bookmark-added'], listener); } let bmService = Cc['@mozilla.org/browser/nav-bookmarks-service;1'].getService(Ci.nsINavBookmarksService); let observer = { onItemMoved: (a1,a2,a3,a4,newIndex,a6,guid,a8,newParentGuid,a10,a11) => { PlacesUtils.bookmarks.moveToFolder([guid], newParentGuid, 0); } } StarUI.panel.addEventListener('popupshown', function(event) { if (event.target != this) return; bmService.addObserver(observer, false); }); StarUI.panel.addEventListener('popuphiding', function(event) { if (event.target != this) return; bmService.removeObserver(observer); }); })();
-
Testet bitte. Die Änderungen sind ab Zeile 60. Weiter oben wird nur überprüft, ob der Ordner mehr als ein Lesezeichen enthält.
JavaScript
Alles anzeigen(function() { setTimeout(function() { if (!window.PlacesViewBase) return; PlacesViewBase.prototype._mayAddCommandsItems = function PVB__mayAddCommandsItems(aPopup) { if (aPopup == this._rootElt) return; let hasMultipleURIs = false; if (aPopup._placesNode.childCount > 0) { let currentChild = aPopup.firstElementChild; let numURINodes = 0; while (currentChild) { if (currentChild.localName == "menuitem" && currentChild._placesNode) { if (++numURINodes == 2) break; } currentChild = currentChild.nextElementSibling; } hasMultipleURIs = numURINodes > 1; } if (!hasMultipleURIs) aPopup.setAttribute("nofooterpopup", "true"); else aPopup.removeAttribute("nofooterpopup"); if (!hasMultipleURIs) { if (aPopup._endOptOpenAllInTabs) { aPopup.removeChild(aPopup._endOptOpenAllInTabs); aPopup._endOptOpenAllInTabs = null; aPopup.removeChild(aPopup._endOptSeparator); aPopup._endOptSeparator = null; } } else if (!aPopup._endOptOpenAllInTabs) { aPopup._endOptSeparator = document.createXULElement("menuseparator"); aPopup._endOptSeparator.className = "bookmarks-actions-menuseparator"; aPopup.appendChild(aPopup._endOptSeparator); aPopup._endOptOpenAllInTabs = document.createXULElement("menuitem"); aPopup._endOptOpenAllInTabs.className = "openintabs-menuitem"; if (typeof this.options.extraClasses.entry == "string") { aPopup._endOptOpenAllInTabs.classList.add( this.options.extraClasses.entry ); } if (typeof this.options.extraClasses.footer == "string") { aPopup._endOptOpenAllInTabs.classList.add( this.options.extraClasses.footer ); } aPopup._endOptOpenAllInTabs.setAttribute( "oncommand", "PlacesUIUtils.openMultipleLinksInTabs(this.parentNode._placesNode, event, " + "PlacesUIUtils.getViewForNode(this));" ); aPopup._endOptOpenAllInTabs.setAttribute( "onclick", "checkForMiddleClick(this, event); event.stopPropagation();" ); let menuitemsCount = 0; for (let node of aPopup.childNodes) { if (node.localName == 'menuitem') menuitemsCount++; } aPopup._endOptOpenAllInTabs.setAttribute( "label", " " + menuitemsCount + " <- " + gNavigatorBundle.getString("menuOpenAllInTabs.label") ); aPopup.appendChild(aPopup._endOptOpenAllInTabs); } }; }, 1000); })();
-
Teste:
JavaScript
Alles anzeigen(function() { setTimeout(function() { if (!window.PlacesViewBase) return; PlacesViewBase.prototype._mayAddCommandsItems = function PVB__mayAddCommandsItems(aPopup) { if (aPopup == this._rootElt) return; let hasMultipleURIs = false; if (aPopup._placesNode.childCount > 0) { let currentChild = aPopup.firstElementChild; let numURINodes = 0; while (currentChild) { if (currentChild.localName == "menuitem" && currentChild._placesNode) { if (++numURINodes == 2) break; } currentChild = currentChild.nextElementSibling; } hasMultipleURIs = numURINodes > 1; } if (!hasMultipleURIs) aPopup.setAttribute("nofooterpopup", "true"); else aPopup.removeAttribute("nofooterpopup"); if (!hasMultipleURIs) { if (aPopup._endOptOpenAllInTabs) { aPopup.removeChild(aPopup._endOptOpenAllInTabs); aPopup._endOptOpenAllInTabs = null; aPopup.removeChild(aPopup._endOptSeparator); aPopup._endOptSeparator = null; } } else if (!aPopup._endOptOpenAllInTabs) { aPopup._endOptSeparator = document.createXULElement("menuseparator"); aPopup._endOptSeparator.className = "bookmarks-actions-menuseparator"; aPopup.appendChild(aPopup._endOptSeparator); aPopup._endOptOpenAllInTabs = document.createXULElement("menuitem"); aPopup._endOptOpenAllInTabs.className = "openintabs-menuitem"; if (typeof this.options.extraClasses.entry == "string") { aPopup._endOptOpenAllInTabs.classList.add( this.options.extraClasses.entry ); } if (typeof this.options.extraClasses.footer == "string") { aPopup._endOptOpenAllInTabs.classList.add( this.options.extraClasses.footer ); } aPopup._endOptOpenAllInTabs.setAttribute( "oncommand", "PlacesUIUtils.openMultipleLinksInTabs(this.parentNode._placesNode, event, " + "PlacesUIUtils.getViewForNode(this));" ); aPopup._endOptOpenAllInTabs.setAttribute( "onclick", "checkForMiddleClick(this, event); event.stopPropagation();" ); aPopup._endOptOpenAllInTabs.setAttribute( "label", " " + aPopup._placesNode.childCount + " <- " + gNavigatorBundle.getString("menuOpenAllInTabs.label") ); aPopup.appendChild(aPopup._endOptOpenAllInTabs); } }; }, 1000); })();
-
Arik Brauer ist verstorben.
-
Das Skript hat die Nebenwirkung, dass sich Lesezeichen innerhalb des Menüs nicht verschieben lassen. Folgendes Skript funktioniert einwandfrei:
JavaScript
Alles anzeigen(function() { if (location != 'chrome://browser/content/places/bookmarkProperties2.xhtml') return; const menuGuid = PlacesUtils.bookmarks.menuGuid; let bookmarksService = Cc["@mozilla.org/browser/nav-bookmarks-service;1"] .getService(Ci.nsINavBookmarksService); let observer = { onItemMoved: (a1, a2, a3, a4, newIndex, a6, guid, a8, newParentGuid, a10, a11) => { if (newParentGuid == menuGuid && newIndex != 0) { PlacesUtils.bookmarks.moveToFolder([guid], menuGuid, 0); }; } }; bookmarksService.addObserver(observer, false); window.addEventListener('unload', () => bookmarksService.removeObserver(observer) ); })();
-
Hallo,
teste bitte:
JavaScript
Alles anzeigen(function() { if (window.__SSi != 'window0') return; const menuGuid = PlacesUtils.bookmarks.menuGuid; let bookmarksService = Cc["@mozilla.org/browser/nav-bookmarks-service;1"] .getService(Ci.nsINavBookmarksService); let observer = { onItemMoved: (a1, a2, a3, a4, newIndex, a6, guid, a8, newParentGuid, a10, a11) => { if (newParentGuid == menuGuid && newIndex != 0) { PlacesUtils.bookmarks.moveToFolder([guid], menuGuid, 0); }; } }; bookmarksService.addObserver(observer, false); })();
-
Alles Gute im neuen Jahr, vor allem Gesundheit!