Seite 1 von 1

Clipboard Image: Merkwürdiges Verhalten beim Einfügen

Verfasst: 16.10.2022 17:51
von Stellanebula
Grüß euch :-)

Da ich mich gerade in dieser Erweiterung (Clipboard Image 2.0.1) festgebissen habe, will ich euch ein weiteres Problem, das ich damit haben, nicht vorenthalten :)

Wenn ich die erste Grafik über STRG C / STRG V einfüge ist noch alles gut. Die Grafik erscheint dort, wo der Cursor zum Zeitpunkt des EInfügens war. Mache ich das ganze nochmal werden diese eingefügten Grafiken ("Attachments") immer ganz zum Ende des Beitrages eingefügt - egal wo der Cursor steht.

Vielleicht hat ja hier jemand eine zündende Idee, woran es liegen könnte :)

Re: Clipboard Image: Merkwürdiges Verhalten beim Einfügen

Verfasst: 16.10.2022 18:18
von Scanialady
Der Autor der Erweiterung bietet Support hier an: https://www.phpbb.com/customise/db/exte ... ge/support

Du scheinst nicht die Erste zu sein mit ähnlichem Problem.

Re: Clipboard Image: Merkwürdiges Verhalten beim Einfügen

Verfasst: 16.10.2022 19:59
von Stellanebula
@Scanialady

Danke, das hatte ich auch schon gesehen und die zwölf Threads dazu durchgelesen. Mein Problem tauchte da aber leider nicht auf, die letzten Beiträge sind bereits über 1 Jahr alt und der Autor antwortet auch nicht mehr :-?

Re: Clipboard Image: Merkwürdiges Verhalten beim Einfügen

Verfasst: 16.10.2022 22:18
von BNa
Hallo erstmal,

ist ziemlich warscheinlich die fehlende caret_position - Definition im *.js-Script > clipboardimage.js.
Hier beschrieben: https://www.webtips.dev/webtips/javascr ... javascript

Damalige Lösung z.B. aus Better Prompt 4 BBCodes v.0.0.2:

Code: Alles auswählen

/**
* Set Caret Position
*/
 function setCaretPosition(caretPos) {
   var elem = document.forms[form_name].elements[text_name];
    if(elem != null) {
        if(elem.createTextRange) {
            var range = elem.createTextRange();
            range.move('character', caretPos);
            range.select();
			storeCaret(elem);
        }
        else {
		if(document.selection){
		        elem.focus();
                elem.setSelectionRange(caretPos, caretPos);
			}
        else if(elem.selectionStart) {
                elem.focus();
                elem.setSelectionRange(caretPos, caretPos);
            }
            else {
                elem.focus();}
        }
    }
}
Da war nämlich auch das Problem in der v.0.0.1,
das der fertige BBCode immer ganz unten eingefügt wurde, statt an der Cursor-Position.

Ergo, in die oben genannte clipboardimage.js die drunter genannte Funktion einbauen und aufrufen.

Dann statt so

Code: Alles auswählen

			$('#paste-image').on('click', function(e) {
				preventDefaultAndRemovePopup(e);
				uploadImages();
			});
bzw.

Code: Alles auswählen

		// no text - just upload images
		if (!text.length) {
			uploadImages();
		}
eben so

Code: Alles auswählen

			$('#paste-image').on('click', function(e) {
				preventDefaultAndRemovePopup(e);
				setCaretPosition(caretPos);
				uploadImages();
			});
bzw.

Code: Alles auswählen

		// no text - just upload images
		if (!text.length) {
		        setCaretPosition(caretPos);
			uploadImages();
		}

Ist natürlich ungetestet und müsste warscheinlich etwas angepasst werden aber, wie gesagt, denke mal, das ist der Grund.

Re: Clipboard Image: Merkwürdiges Verhalten beim Einfügen

Verfasst: 17.10.2022 20:26
von Stellanebula
BNa hat geschrieben: 16.10.2022 22:18 Hallo erstmal,

ist ziemlich warscheinlich die fehlende caret_position - Definition im *.js-Script > clipboardimage.js.[...]
Hallo BNa,

danke dir für den Vorschlag, werde ich die Tage direkt testen.