Avatar billede pelkjaer Nybegynder
21. september 2002 - 12:18 Der er 2 kommentarer og
1 løsning

pænt svært..

Mit script her udskriver en select med styles fra en sides stylesheet - umiddelbart virker det ok, men så alligevel ikke.

Når jeg bruger det i min editor udskriver det fx.

<SPAN class=undefined>en tekst</SPAN>

Selvom jeg i selecten kan se de rigtige styles..
Nu har jeg siddet og gloet på det siden klokken 7 i morges, så lidt hjælp ville være rigtigt lækkert :)

Scriptet:

<script type="text/javascript">
function InitStyle()
    {
    var val;
    var sHTML = "<select onchange=\"applyStyle('"+val+"');\" style=\"font: 8pt verdana; background-color: #B1E403; color: #FFFFFF; font-weight: bold;\"><option selected> -- Css styles -- </option>";
    for(var i=0;i<document.styleSheets(0).rules.length;i++)
        {
        h=document.styleSheets(0).rules.item(i).selectorText
        var selArr = h.split(".")
        var itemCount = selArr.length
        //alert(h + " " + itemCount)
        if(itemCount>1)
            {
            val = selArr[1]
            }
        else
            {
            val = h
            }
        sHTML += "<option value=\""+val+"\">" + val + "</option>";
        }   
    sHTML += "</select>"
    divStyle.innerHTML = sHTML;
    }
   
function applyStyle(Style)
    {
    //get selection
    var oSel    = idContent.document.selection.createRange()
    var sType = idContent.document.selection.type
    //if (sType!="Control"&&sType!="None")
    if(oSel.parentElement != null)
        {
        sApplied = "<span class='"+Style+"'>"+oSel.text+"</span>"
        oSel.pasteHTML(sApplied)
        }
    }
</script>

og til at vise det:

<td>
<div id="divStyle"></div>
</td>
Avatar billede pelkjaer Nybegynder
21. september 2002 - 12:20 #1
Skal måske lige klargøre problemet helt..

<SPAN class=undefined>en tekst</SPAN>

"undefined" er problemet, det burde skrive den style der vælges.
Avatar billede Slettet bruger
21. september 2002 - 12:52 #2
Denne linje:

var sHTML = "<select onchange=\"applyStyle('"+val+"');\" style=\"font: 8pt verdana; background-color: #B1E403; color: #FFFFFF; font-weight: bold;\"><option selected> -- Css styles -- </option>";

... skal vist ændres til:

var sHTML = "<select onchange=\"applyStyle(this.options[this.selectedIndex].value);\" style=\"font: 8pt verdana; background-color: #B1E403; color: #FFFFFF; font-weight: bold;\"><option selected> -- Css styles -- </option>";

Du har jo ikke tilskrevet "val" nogen værdi endnu!
Avatar billede pelkjaer Nybegynder
21. september 2002 - 13:24 #3
Hehe :)

Det er fuldstændigt korrekt.

Tak skal du ha'.
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