Avatar billede MadsHaupt Juniormester
18. juli 2015 - 19:37

Indsæt HTML-kode ved tekstmarkøren i et contentEditable HTML-element‏

Jeg er i gang med at lave en mini HTML editor med HTML5-attributten contentEditable og jeg har derfor brug for at kunne indsætte HTML-kode der hvor tekstmarkøren er via javascript.

Så man kan indsætte ting som billeder, lyd og video i mini HTML editoren.

Jeg har søgt lidt rundt på internettet og har fundet dette: https://stackoverflow.com/questions/4834793/

Der står der:
function insertNodeAtCaret(node) {
    if (typeof window.getSelection != "undefined") {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var range = sel.getRangeAt(0);
            range.collapse(false);
            range.insertNode(node);
            range = range.cloneRange();
            range.selectNodeContents(node);
            range.collapse(false);
            sel.removeAllRanges();
            sel.addRange(range);
        }
    } else if (typeof document.selection != "undefined" && document.selection.type != "Control") {
        var html = (node.nodeType == 1) ? node.outerHTML : node.data;
        var id = "marker_" + ("" + Math.random()).slice(2);
        html += '<span id="' + id + '"></span>';
        var textRange = document.selection.createRange();
        textRange.collapse(false);
        textRange.pasteHTML(html);
        var markerSpan = document.getElementById(id);
        textRange.moveToElementText(markerSpan);
        textRange.select();
        markerSpan.parentNode.removeChild(markerSpan);
    }
}


Den første metode virker i Google Chrome og Firefox, men kan kun indsætte tekst.
Den anden metode ser ud til at kunne indsætte HTML-kode, men den virker ikke i Google Chrome og Firefox.

Så jeg vil gerne høre om der overhovedet er native funktioner til dette i Google Chrome og Firefox.
Kan det lad sig gøre?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester