Hallo Philipp,
da die Frage hier nicht direkt zu einer CF4 Funktion ist weiß ich natürlich nicht genau, was Du vorhast. Aber ich kann Dir vielleicht ein paar allgemeine Tipps geben die Dir vielleicht helfen:
Grundlegend muss man sagen, dass Du hier deutlich zwischen der Userseite (JavaScript) und der Serverseite (PHP Scripte) unterscheiden musst. Das heißt der kopierte Text liegt zunächst einmal nur für den Anwender über JavaScript vor und Dein Server bekommt davon nichts mit. Falls Du diese Information also an ein PHP Script übergeben möchtest müsstest Du eine AJAX Schnittstelle machen die es dann an eine PHP Datei zur Serverseitigen Weitergabe sendet. Diese Schnittstelle (z.B. als Plugin Route anzumelden) musst Du auch auf jeden Fall dann entsprechend sichern.
Wenn Du es nur auf Userseite brauchst (z.B. in die Zwischenablage kopieren) ist das ein bisschen einfacher.
Allerdings kannst Du es (wie Du schon sagtest) mit den Sicherheitsvorkehrungen heute nicht mehr ohne User Consent machen. Sicher könntest Du mit Click-Events tricksen, aber ich würde sagen manche Sicherheitssoftware wird dann ein bisschen nervös. Ich würde es also eher über einen zusätzlichen Button machen, der die Aktion dann auslöst. Wenn der User bewusst klickt meckert normal auch keine Sicherheitsvorkehrung herum.
Zum übertragen von markiertem Text in ein Textfeld gibt es im CF4 auch eine Funktion in der Schnellantwort die das macht. Da könntest Du das grundlegende Prinzip abkupfern:
Diese findest Du in der Datei shared/bbcode/editor.js - Die Funktion dort heißt function add_mark_to_editor(elm)
Diese Funktion sendet den markierten Text an das per elm übergebene Editor-Element. Um den markierten Text in einer Variable zu haben würde ich eine Variable anlegen und die Funktion in eine global eingebundene JS Datei duplizieren (mit neuem Namen natürlich!! Die genannte fertige funktion zum Senden an ein Eingabefeld ist nämlich im Forum nur bei Editoren aktiv und nicht im ganzen Forum), den elm parameter aus dem Funktionskopf nehmen (da Du für senden an variable nicht unbedingt einen Übergabewert brauchst) und unten als Funktionsrückgabe nur jeweils in die Variable schießen (entweder per return den Wert zurück wo anders hin oder wenn es eine globale Variable ist direkt in diese Variable rein, die Du dann überall sonst im Userbereich (also innerhalb von JavaScripten) nutzen kannst - allerdings immer nur bis der User die Seite wechselt oder neu lädt, er überträgt das natürlich nicht von A nach B).
Wenn es darum geht einen Wert in die Zwischenablage zu kopieren hilft Dir vielleicht dieses Tutorial weiter:
https://www.w3schools.com/howto/howto_js_copy_clipboard.asp
Viele Grüße,
Chris