Avatar billede thaman65 Nybegynder
06. maj 2003 - 22:01 Der er 5 kommentarer og
1 løsning

start funktion onselectionchange (WYSIWYG)

Jeg har en editor jeg gerne vil have til at udføre en funktion når brugeren har markeret et eller andet i editor vinduet.

Dette er hvad jeg har, men det virker ikke helt efter hensigten. :) dvs... det virker ikke. :)

-------------------------------
window.onload = start;

function start()
{
    hovededitor.document.designMode = 'On';   
    hovededitor.document.execCommand("2D-Position",false, true);

    hovededitor.document.onselectionchange = function ()
        {
            visMarkering();
        }
}

----------------------------------------
Avatar billede pelkjaer Nybegynder
06. maj 2003 - 22:32 #1
Ehh har du ikke andet end det der?
Hvad har du i visMarkering()?
Avatar billede mortrr Praktikant
06. maj 2003 - 23:09 #2
Du skal kigge på den selection der er lavet i "hovededitor".
Noget i stil med:
<script>
window.onload = start;

function visMarkering() {
    if (hovededitor.document.selection.type=="Text") {
        tRange=hovededitor.document.selection.createRange();
        alert(tRange.text);
    }
}

function start()
{
    hovededitor.document.designMode = 'On';   
    hovededitor.document.execCommand("2D-Position",false, true);

    hovededitor.document.onselectionchange = function ()
        {
            parent.visMarkering();
        }
}
</script>
Avatar billede thaman65 Nybegynder
07. maj 2003 - 05:35 #3
Her er visMarkering og der skulle jeg mene at jeg allerede kigger på den selection :)

function visMarkering() {
       
        if (editModeOn == true) //Det er den så :)
        {

        if (hovededitor.document.selection.type != "Control") {

            if (document.getElementById("fonttype") != null) {
                fontName = hovededitor.document.queryCommandValue('FontName')
                if ((fontName == null) || (fontName == "")) {
                    fontName = "Font"
                }
            }

            if (document.getElementById("stor") != null) {
                fontSize = hovededitor.document.queryCommandValue('FontSize')
                if ((fontSize == null) || (fontSize == "0")) {
                    fontSize = "Størrelse"
                }
            }


            if (document.getElementById("fonttype") != null) {
                document.getElementById("fonttype").options[0].text = fontName
            }

            if (document.getElementById("stor") != null) {
                document.getElementById("stor").options[0].text = fontSize
            }

        } else {

            if (document.getElementById("fonttype") != null) {
                document.getElementById("fonttype").options[0].text  = "Font";
            }

            if (document.getElementById("stor") != null) {
                document.getElementById("stor").options[0].text = "Size";
            }

        }
       
        if (document.getElementById("fonttype") != null) {
            document.getElementById("fonttype").selectedIndex = 0;
        }

        if (document.getElementById("stor") != null) {
            document.getElementById("stor").selectedIndex = 0;
        }
    }
}
Avatar billede thaman65 Nybegynder
07. maj 2003 - 05:40 #4
Koden virker sådan set fint nok når jeg aktiverer den fra en anden funktion der er klik afhængig. Nu skal den bare virke onselectionchange. :)
Avatar billede mortrr Praktikant
07. maj 2003 - 10:23 #5
Det virker den da også med.

Den undrede mig lidt, så jeg lavede en lignende side, og det virker med det samme.

<html>
<script>
window.onload = start;
var editModeOn=false;

function visMarkering() {
       
        if (editModeOn == true) //Det er den så :)
        {

        if (hovededitor.document.selection.type != "Control") {

            if (document.getElementById("fonttype") != null) {
                fontName = hovededitor.document.queryCommandValue('FontName')
                if ((fontName == null) || (fontName == "")) {
                    fontName = "Font"
                }
            }

            if (document.getElementById("stor") != null) {
                fontSize = hovededitor.document.queryCommandValue('FontSize')
                if ((fontSize == null) || (fontSize == "0")) {
                    fontSize = "Størrelse"
                }
            }


            if (document.getElementById("fonttype") != null) {
                document.getElementById("fonttype").options[0].text = fontName
            }

            if (document.getElementById("stor") != null) {
                document.getElementById("stor").options[0].text = fontSize
            }

        } else {

            if (document.getElementById("fonttype") != null) {
                document.getElementById("fonttype").options[0].text  = "Font";
            }

            if (document.getElementById("stor") != null) {
                document.getElementById("stor").options[0].text = "Size";
            }

        }
       
        if (document.getElementById("fonttype") != null) {
            document.getElementById("fonttype").selectedIndex = 0;
        }

        if (document.getElementById("stor") != null) {
            document.getElementById("stor").selectedIndex = 0;
        }
    }
}

function visMarkering1() {
    if (hovededitor.document.selection.type=="Text") {
        tRange=hovededitor.document.selection.createRange();
        alert(tRange.text);
    }
}

function start()
{
    hovededitor.document.designMode = 'On';   
    hovededitor.document.execCommand("2D-Position",false, true);

    hovededitor.document.onselectionchange = function ()
        {
            parent.visMarkering();
        }
    editModeOn=true;
}
</script>
<body>
Font: <select id="fonttype"><option>Ingenting</select> Størrelse: <select id="stor"><option>Ingenting</select>
<iframe id="hovededitor" src="blank.htm" width="100%" height="90%"></iframe>
</body>
</html>
Avatar billede thaman65 Nybegynder
07. maj 2003 - 12:43 #6
Jeg bøvlede lidt med det og fandt ud af at jeg ikke kunne få det til at virke fordi jeg også havde en onload i min body tag. Så virkede window.onload åbentbart ikke. Men tak for det simple eksempel. Så kunne jeg da se at det gerne skulle virke.
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