markierten Text auslesen

 
Philipp51
Benutzer
Avatar
Geschlecht:
Alter: 73
Beiträge: 94
Dabei seit: 11 / 2014
Betreff:

markierten Text auslesen

 · 
Gepostet: 01.12.2018 - 13:51 Uhr  ·  #1
Hallo zusammen,

ich möchte gerne einen markierten Text auslesen können.

Beispiel:
Ein User liest einen Beitrag und markiert mit der Maus ein Wort oder eine Passage irgendwo auf dem Bildschirm.

Wie bekomme ich den Inhalt des markierten Bereiches in eine Variable ?

Es tönt so einfach, aber ich finde es trotz langem Suchen nicht heraus.
Früher konnte man das, heute kolidiert es evtl. mit irgendwelchen Sicherheitsregeln.
Vielleicht hat ja jemand von euch ein Idee.
Danke
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 37
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: markierten Text auslesen

 · 
Gepostet: 03.12.2018 - 15:00 Uhr  ·  #2
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
Philipp51
Benutzer
Avatar
Geschlecht:
Alter: 73
Beiträge: 94
Dabei seit: 11 / 2014
Betreff:

Re: markierten Text auslesen

 · 
Gepostet: 03.12.2018 - 22:07 Uhr  ·  #3
Danke Chris, dass du in dieser stressigen Zeit noch soviel Zeit in die Antwort investierst hast. Da werde ich reinsteigen.

In 2 Nächten habe ich mir eine Lösung zusammengebastelt. Auf die Zeit bin ich nicht stolz, aber ein bisschen auf das Ergebnis.
Das ganze nennt sich schnelle Suche. Man liest z.B. einen Beitrag, interessiert sich für einen Begriff, markiert ihn mit der Maus, klickt auf den Button und schon liefert die Suchmaschine alles, was sie über diesen Begriff weiss.
Für mich eine sinnvolle Ergänzung zur Suchfunktion des Forums, da ich manchmal klick- und schreibfaul bin.

Bei der Gelegenheit habe ich einmal mehr gestaunt, was du alles in die Software eingebaut hast. Obwohl meine Funktion ziemlich holzhackermässig ist, blieb das Forum dicht und stabil! Keine Information rutscht raus. Sehr beruhigend !
Vielleicht finde ich dank deinem Vorschlag den Weg vom Holzhacker zum Holzschnitzer ...

Evtl. nutze ich die Gelegenheit, mich mit der Plugin-Erstellung auseinander zu setzen. Einige Beschreibungen dazu hast du ja schon publiziert.
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 37
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: markierten Text auslesen

 · 
Gepostet: 04.12.2018 - 15:05 Uhr  ·  #4
Sehr gerne, Philipp! Freut mich, dass ich Dir helfen konnte! :)

Deine Funktionsidee finde ich echt genial und ich muss an dieser Stelle auch wirklich "Hut ab!" sagen! Du bist ja jetzt auch schon eine ganze Weile dabei und entsprechend weiß ich ja auch, was Du im Laufe der Zeit alles dazugelernt hast und an was Du inzwischen auch schon selbst rangehst. Wirklich super. Finde ich auf jeden Fall sehr klasse, dass Du Dir das alles so schnell drauf schaffst. 👍

Als Holzhacker haben wir alle mal angefangen. :)

LG,
Chris
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.