Das Script stammt von einem Mozilla-Mitarbeiter.
Das ist er:

aminomancer - Overview
Firefox messaging system 🦖 @mozilla. aminomancer has 19 repositories available. Follow their code on GitHub.
github.com
Das Script stammt von einem Mozilla-Mitarbeiter.
Das ist er:
Ist mir letztlich egal,
Du, du, du – wenn das Sören liest …
funktioniert die Funktion zumindest erstmal wieder.
Ja, kann ich bestätigen. Besser wäre es, jemand könnte aber eval() umschreiben. Mit der Deaktivierung dieser Einstellung wird sicherlich die Sicherheit reduziert.
Ach nein, die Fehlermeldung dazu erscheint doch, nur in einer anderen Zeile der Konsole.
Vergleiche tabLock_mod2.uc.js und tabProtect_mod2.uc.js.
Ich habe jetzt nur mal Letzteres installiert. Der Eintrag erscheint im Tab-Kontextmenü und der Haken wird auch gesetzt bzw. entfernt. Die Warnung zu eval() erscheint nicht, nur „gBrowserInit is not defined“.
und ich weiss nicht, wie man eval umschreiben kann.
Es geht eben den Menschen wie den Leuten.
Das hängt meiner Meinung nach mit diesem Bugticket zusammen:
Die Browserkonsole sagt, dass die Funktion eval() durch die CSP (Content Security Policy) geblockt wurde. eval() gilt ja als unsicher und sollte nicht mehr verwendet werden. Sie wird in den Zeilen 432 bis 443 verwendet.
Also ich habe die Erscheinungsbild-Leiste sofort ausgeblendet.
Was hätte ich da noch genauer beschreiben sollen?
Ach, entschuldige bitte, tatsächlich, du hast etwas in Eingangsbeitrag etwas dazu geschrieben. Aber als ich deine Version getestet habe, hat das Skript aus der Lesezeichenleiste gar nichts gemacht, nur der Eintrag im Kontextmenü war zu sehen. Da war ich froh, dass ich das wenigstens hingekriegt habe.
OK. Es wäre aber schön, wenn du in Zukunft mal bei Eröffnung eines Threads mitteilst, was ein Skript genau machen soll. Viele Skripte sind uralt und nicht jeder nutzt sie (ich z. B. dieses). Da reicht es nicht, wenn man nur schreibt, dass es nicht funktioniert.
Ich werde es noch einmal durchsehen.
Wenn ich dich richtig verstehe, stört dich nur, dass das Lesezeichen als letzter Eintrag gespeichert wird und nicht irgendwo an einer stelle, wo du es gerne hättest?
Grund ist wohl dieses Bugticket:
Dazu gibt es dieses Changeset:
Allerdings gibt es im obenerwähnten Bugticket inzwischen zwei Beiträge, die auf Bugtickets mit Regressions hinweisen (ganz unten).
Verstehe ich immer noch nicht. Das ist doch die Standardfunktion dieses Dialogs. Da brauchst du doch das Skript nicht.
Ich arbeite nur mit der Maus
Und mit dem Laptop brauche ich dann auch wirklich eine Maus. Das Touchpad treibt mich jedes Mal in den Wahnsinn!
edvoldi Du hast da die entsprechende Zeile doppelt drin, in Zeile 175 und in Zeile 176.
Das begreife ich jetzt nicht. Soll das Skript das Menü Lesezeichen bearbeiten öffnen oder was hat das mit dem Skript zu tun? Was meinst du mit Ansteuern? Wenn ich in der Lesezeichenleiste rechts auf einen Ordner klicke und dann Lesezeichen hinzufügen auswähle, wird die offene Seite als Lesezeichen in diesem Ordner abgelegt.
Es gibt da noch align-items: center. Ich habe da noch auf align-item: left umgestellt.
Geht auch kürzer:
Ich brauche einen größeren Abstand nach oben, da kann ich das nicht nehmen, sonst wird padding-top ebenfalls auf 0 gesetzt.
Nein, funktioniert hier leider nicht im mittlerweile Nightly 139
Was funktioniert nicht? Bei mir werden die Lesezeichen in den Lesezeichen-Ordner eingefügt.
Und hier das Kontextmenü mit den hinzugefügten Lesezeichen:
Ich habe gerade von Fx 136.04 ohne Probleme auf Fx 137.0 aktualisiert.
Hallo Boersenfeger,
probiere mal folgende Skriptversion:
// ==UserScript==
// @name Add Bookmark Here
// @namespace about:userchromejs/addbookmarkhere
// @description add "Add Bookmark Here" contextmenu in places menu
// @include chrome://browser/content/browser.xhtml
// @include chrome://browser/content/places/places.xhtml
// @shutdown window.AddBookmarkHere.uninit()
// @author Ryan, zbinlin
// @homepage http://mozcp.com
// @version 0.0.3
// ==/UserScript==
/**
* ******************************** Changelog ********************************
* version: 0.0.3
* * Kompatibilitäts - Probleme mit neueren Firefox-Versionen behoben.
* * Achtung: nur in Firefox 100 getestet!
* version: 0.0.2
* * Kompatibel mit Firefox 21+
*
* version: 0.0.1
* * Initialisierung
* ***************************************************************************
*/
"use strict";
(function () {
if (window.AddBookmarkHere) return;
var AddBookmarkHere = {
PARENT_NODE: "placesContext",
REF_NODE: "",
init: function () {
var parentNode = document.getElementById(this.PARENT_NODE);
if (!parentNode) return;
var self = this;
window.addEventListener("unload", function _(e) {
window.removeEventListener("unload", _, false);
self.uninit();
}, false);
var refNode;
if (this.REF_NODE !== "") {
var refNode = document.getElementById(this.REF_NODE);
}
this.addContextMenu(parentNode, refNode);
/*
var node = document.getElementById("placesContext_createBookmark");
if (!node) return;
node.removeAttribute("forcehideselection");
node.setAttribute("selection", "any");
node.removeAttribute("command");
node.setAttribute("oncommand", "AddBookmarkHere.addBookmark(event);");
*/
},
addContextMenu: function (parentNode, afterNode) {
var menuitem = document.createXULElement("menuitem");
menuitem.id = "placesContext_add:bookmark";
menuitem.setAttribute("label", Services.locale.appLocaleAsBCP47.includes("de") ? "Lesezeichen hier hinzufügen" : "Add Bookmark Here");
menuitem.setAttribute("accesskey", "h");
menuitem.setAttribute("selection", "any");
menuitem.setAttribute("class", "menuitem-iconic");
menuitem.setAttribute("style", "list-style-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY29udGV4dC1maWxsIiBmaWxsLW9wYWNpdHk9ImNvbnRleHQtZmlsbC1vcGFjaXR5IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOC44MDgwMiAyLjEwMTc5QzguNDc3ODkgMS40MzI4NyA3LjUyNDAzIDEuNDMyODcgNy4xOTM5IDIuMTAxNzlMNS42NzI4MSA1LjE4Mzg0TDIuMjcxNTYgNS42NzgwN0MxLjUzMzM2IDUuNzg1MzQgMS4yMzg2MSA2LjY5MjUxIDEuNzcyNzcgNy4yMTMyTDQuMjMzOTQgOS42MTIyNEwzLjY1Mjk0IDEyLjk5OTdDMy41MjY4NCAxMy43MzUgNC4yOTg1MyAxNC4yOTU2IDQuOTU4NzkgMTMuOTQ4NUw4LjAwMDk2IDEyLjM0OTFMOC40ODI5IDEyLjYwMjVDOC4xODU5NyAxMi4zMjg0IDggMTEuOTM1OSA4IDExLjVDOCAxMS40NDQ2IDguMDAzIDExLjM5IDguMDA4ODQgMTEuMzM2MkM3Ljg2MjM2IDExLjMzNDkgNy43MTU2NCAxMS4zNjk0IDcuNTgyMTUgMTEuNDM5NUw0LjY3MjggMTIuOTY5MUw1LjIyODQzIDkuNzI5NDdDNS4yNzg1MSA5LjQzNzUxIDUuMTgxNzEgOS4xMzk2MSA0Ljk2OTYgOC45MzI4NUwyLjYxNTg4IDYuNjM4NTRMNS44Njg2NCA2LjE2NTg5QzYuMTYxNzggNi4xMjMyOSA2LjQxNTE5IDUuOTM5MTggNi41NDYyOCA1LjY3MzU1TDguMDAwOTYgMi43MjYwNUw4LjczMzUxIDQuMjEwMzZDOC45NTc4MiA0LjA3Njc1IDkuMjE5OTUgNCA5LjUgNEg5Ljc0NDg1TDguODA4MDIgMi4xMDE3OVpNOS41IDVDOS4yMjM4NiA1IDkgNS4yMjM4NiA5IDUuNUM5IDUuNzc2MTQgOS4yMjM4NiA2IDkuNSA2SDE0LjVDMTQuNzc2MSA2IDE1IDUuNzc2MTQgMTUgNS41QzE1IDUuMjIzODYgMTQuNzc2MSA1IDE0LjUgNUg5LjVaTTkuNSA4QzkuMjIzODYgOCA5IDguMjIzODYgOSA4LjVDOSA4Ljc3NjE0IDkuMjIzODYgOSA5LjUgOUgxNC41QzE0Ljc3NjEgOSAxNSA4Ljc3NjE0IDE1IDguNUMxNSA4LjIyMzg2IDE0Ljc3NjEgOCAxNC41IDhIOS41Wk05LjUgMTFDOS4yMjM4NiAxMSA5IDExLjIyMzkgOSAxMS41QzkgMTEuNzc2MSA5LjIyMzg2IDEyIDkuNSAxMkgxNC41QzE0Ljc3NjEgMTIgMTUgMTEuNzc2MSAxNSAxMS41QzE1IDExLjIyMzkgMTQuNzc2MSAxMSAxNC41IDExSDkuNVoiLz4KPC9zdmc+Cg==)");
menuitem.addEventListener("command", this, false);
if (typeof refNode !== "undefined") {
parentNode.insertBefore(menuitem, afterNode);
} else {
parentNode.appendChild(menuitem);
}
},
handleEvent: function (e) {
var popupNode = e.currentTarget.parentNode.triggerNode;
if (!popupNode) return;
var view = PlacesUIUtils.getViewForNode(popupNode);
if (!view) return;
var bookmarks = Cc["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Ci.nsINavBookmarksService);
var selectedNode = view.selectedNode;
var iid, aid;
if (selectedNode) {
if (PlacesUtils.nodeIsFolderOrShortcut(selectedNode) /* Firefox 21+ inkompatibel && !PlacesUtils.nodeIsLivemarkContainer(selectedNode) && !PlacesUtils.isReadonlyFolder(selectedNode) */) {
iid = selectedNode.itemId;
aid = e.shiftKey ? 0 : bookmarks.DEFAULT_INDEX;
} else {
iid = bookmarks.getFolderIdForItem(selectedNode.itemId);
var id = bookmarks.getItemIndex(selectedNode.itemId);
aid = e.shiftKey ? id : id + 1;
}
} else {
iid = view.result.root.folderItemId;
aid = e.shiftKey ? 0 : bookmarks.DEFAULT_INDEX;
};
var uri = Services.io.newURI(gBrowser.currentURI.spec, null, null);
var title = gBrowser.contentTitle
bookmarks.insertBookmark(iid, uri, aid, title);
},
uninit: function () {
var self = this;
try {
var menuitem = document.getElementById("placesContext_add:bookmark");
menuitem.removeEventListener("command", self, false);
menuitem.remove();
delete window.AddBookmarkHere;
} catch (ex) {
}
}
};
AddBookmarkHere.init();
window.AddBookmarkHere = AddBookmarkHere;
})();
Alles anzeigen