Ik ben bezig een soort WYSIWYG editor te maken, online, en via javascript. Vet maken, onderstrepen, cursief, kleur veranderen etc. werkt allemaal al. Alleen met het lettertype veranderen heb ik een klein probleem. De kleuren verander ik bv met deze code:
Logisch doordenken zou dus de volgende code opleveren om het lettertype te veranderen:
Hiermee geeft hij alleen een error: 'Deze eigenschap of methode wordt niet ondersteund door dit object'.
Dus ik weer verder zoeken, kom ik de functie surroundSelection(Ervoor, Erachter) tegen.
Ik dacht zo, dan zet ik <font face='lettertype'> ervoor, en </font> erachter. Zo gezegt zo gedaan :-)
Tussen de script tags:
En in de body:
Dit werkt perfect, op een ding na. De eerste keer vervangt hij het lettertype perfect, alleen als je het daarna nog een keer verander, op dezelfde selectie, komt er dus zeg maar dit te staan:
(in de bron van de pagina, niet in beeld zelf :-))
Dit zorgt er uiteraard voor, dat als lettertype het eerst gekozen lettertype wordt genomen. Mijn vraag is dus: Hoe vervang ik dat lettertype, zodat het lettertype echt vervangen wordt, je geen errors krijgt, en het na meerdere keren ook nog steeds werkt?
code:
1
2
3
4
5
6
7
8
9
| <select onchange="if(this.options[this.selectedIndex].value != -1){ document.all.edit.setColor(this.options[this.selectedIndex].value); }">>
<option value="-1"> Kies een kleur </option>
<option value="FF0000" style="color:FF0000"> Rood</option>
<option value="0000FF" style="color:0000FF"> Blauw</option>
<option value="000000"> Zwart</option>
<option value="FFFF00" style="color:FFFF00"> Geel</option>
<option value="FF00FF" style="color:FF00FF"> Paars</option>
<option value="00FFFF" style="color:00FFFF"> Groen</option>
</select> |
Logisch doordenken zou dus de volgende code opleveren om het lettertype te veranderen:
code:
1
2
3
4
5
6
| <select onchange="document.all.edit.setFont(this.options[this.selectedIndex].value);"> <option value="-1"> Kies een lettertype </option> <option value="Verdana">Verdana</option> <option value="Arial">Arial</option> <option value="times">Times new roman</option> </select> |
Hiermee geeft hij alleen een error: 'Deze eigenschap of methode wordt niet ondersteund door dit object'.
Dus ik weer verder zoeken, kom ik de functie surroundSelection(Ervoor, Erachter) tegen.
Ik dacht zo, dan zet ik <font face='lettertype'> ervoor, en </font> erachter. Zo gezegt zo gedaan :-)
Tussen de script tags:
code:
1
| Erachter = '</font>'; |
En in de body:
code:
1
2
3
4
5
6
| <select onchange="if(this.options[this.selectedIndex].value != -1) { document.all.edit.surroundSelection(this.options[this.selectedIndex].value, Erachter); }">
<option value="-1"> Kies een lettertype </option>
<option value="<font face='Verdana'>">Verdana</option>
<option value="<font face='Arial'>">Arial</option>
<option value="<font face='Times'>">Times new roman</option>
</select> |
Dit werkt perfect, op een ding na. De eerste keer vervangt hij het lettertype perfect, alleen als je het daarna nog een keer verander, op dezelfde selectie, komt er dus zeg maar dit te staan:
code:
1
| <font face='2de lettertype'><font face='1ste lettertype'>Selectie</font></font> |
(in de bron van de pagina, niet in beeld zelf :-))
Dit zorgt er uiteraard voor, dat als lettertype het eerst gekozen lettertype wordt genomen. Mijn vraag is dus: Hoe vervang ik dat lettertype, zodat het lettertype echt vervangen wordt, je geen errors krijgt, en het na meerdere keren ook nog steeds werkt?