Hallo! Ich habe folgende JavaScript-Funktion, die in meinem CMS ein Bild in den HTML-Bereich eines DIVs einfügen soll. Ich hatte zuerst die execCommand-Funktion alleine Probiert, aber die geht nur, wenn eine etwas markiert ist und das will der Kunde nicht...
Hier meine Funktion:
function insertPic (pic) {
div = document.getElementById('cnt');
range = div.document.selection.createRange();
range.execCommand('Delete');
idstr = "" id="556e697175657e537472696e67";
alert(range.execCommand('InsertImage',false,idstr));
div.focus();
}
Ich habe den Code teilweise bei HTMLAREA geborgt, da ich erstmal das Prinzip verstehen möchte. Ich erkläre mal ganz kurz, was passieren soll:
Ich habe ein DIV, in dem der User editieren kann, wie es ihm gefällt. Jetzt will ich, dass er ein Bild einfügen kann und zwar an der Stelle, an der der Cursor gerade ist. Versucht habe ich es mit dem Code oben. Als erstes, bei div = document... hole ich mir eine Referenz auf mein DIV (editierbar). Danach erstelle ich ein TextRange/ControlRange Objekt und lösche den Inhalt, da ja, falls etwas markiert ist, das ganze überschrieben werden soll. Danach wird die execCommand ausgeführt und sollte eigentlich ein Bild in der Selektion einfügen, auch wenn es keine gibt - dann eben an Cursorposition. Wenn das jetzt ausgeführt wird, passiert folgendes: Im HTML-Body wird an oberster Stelle ein Bild eingefügt, welches aber nicht als Child vom DIV "markiert" ist, das heißt, ich kann es weder markieren noch sonst irgendwas machen und es fällt eben aus dem Design. Hat jemand von euch eine Idee?
Gruß,
Tim