Hallo mumpel,
habe gerade nun doch mal den Affen in den Fuchs gesteckt und was probiert.
Fehlermeldung: Execution of script 'Menu' failed! setting getter-only property "contextMenu"
Würde sagen: So geht's nicht. Die Eigenschaft ist schreibgeschützt. Ich wüsste jetzt nicht, wie man sie von JavaScript aus ändern sollte, es sei denn durch schweres Geschütz: Container des img suchen (das div), innerHTML dieses Containers auslesen, alle img-Elemente manipulieren dass sie das contextMenu-Attribut bekommen, innerHTML überschreiben. Das löst dann ein Layout-Update aus und dürfte ordentlich flackern.
Angesichts der Tatsache, dass contextMenu ohnehin auf der Abschussliste steht, wäre die Idee damit tot.
Es gibt noch das contextmenu-Event, auf das man sich registrieren kann (das ist die klassische Methode um den Klick auf die "rechte" Maustaste zu unterbinden), damit kannst Du aber keine Menüpunkte ins Browser-Kontextmenü hineinmogeln. Statt dessen kannst Du ein EIGENES Menü hochbringen, d.h. ein DIV in den Body kleben und darin ein paar Buttons unterbringen. Von <menu> würde ich hier abraten, weil caniuse.com sagt, dass <menu> nur von Firefox und nur für type="context" unterstützt würde.
Du willst ja sicherlich nicht vorhandene Fuchsfeatures überschreiben, sondern ergänzen. D.h. Du könntest es BEISPIELSWEISE so machen, dass Du auf das contextmenu-Event reagierst und darin prüfst, ob die Maus zusammen mit der Alt-Taste geklickt wurde. Wenn ja, bringst Du deine eigene Funktionalität, wenn nein, tust Du nichts - woraufhin das Browser-Kontextmenü erscheint.
Dein Tampermonkey-Script muss also über die Nodelist laufen, die aus querySelectorAll zurückkommt und für jeden Eintrag einen contextmenu Eventlistener hinzufügen (mit addEventListener). In der Handler-Funktion greift man auf das target-Attribut des Event-Objekts zu, das ist das img, und findet dort den src. Den kann man dann weiterverarbeiten. Wie man den Wert ins Clipboard bekommt, weißt Du hoffentlich - ich nicht (müsste es erstmal nachgucken).
Ich habe das gerade mal im Tampermonkey probiert - mit einem alert für den src statt einem Copy ins Clipboard - klappt ganz gut. Aber ich bin ja kein Vorkauer und will Dir dein Erfolgserlebnis beim Selbermachen nicht nehmen. Viel Spaß 😀
Rolf
sumpsi - posui - clusi