Ik ben bezig met een webbased HTML editor, waarbij de body in een Iframe contentEditable is.
Om te schakelen tussen code-view en wysiwyg gebruik ik de volgende functie:
De body wordt dus in codeview in een textarea gezet en bij t terugschakelen verdwijnt de textarea en wordt die inhoud weer de body. Duidelijk?
Het probleem is nu dat als er bijvoorbeeld een tabel in de pagina is toegevoegd er automatisch <br> achter bijna elke tag verschijnt wanneer je naar codeview omschakelt. Dit is niet de bedoeling! Schakel je nog een keer dan gebeurt t weer, waardoor er nog meer <br>'en bij komen.
Iemand enig idee hoe dit te verhelpen is? Alle <br>'en verwijderen is geen optie, want bestaande <br>'en moeten er wel in blijven natuurlijk.
Om te schakelen tussen code-view en wysiwyg gebruik ik de volgende functie:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| var codeActive = false; function viewCode(){ var part1 = '<textarea id="htmlcode" style="width: 100%; height: 99%; border: 0; overflow: visible">'; var part2 = '</textarea>'; if(codeActive){ editpage.document.body.innerHTML = editpage.document.getElementById('htmlcode').value; editpage.document.body.contentEditable = true; MM_swapImage('code','','images/code_over.gif',1); codeActive = false; } else{ editpage.document.body.innerText = editpage.document.body.innerHTML; editpage.document.body.innerHTML = part1+editpage.document.body.innerHTML+part2; editpage.document.body.contentEditable = false; MM_swapImage('code','','images/code_down.gif',1); codeActive = true; } } |
De body wordt dus in codeview in een textarea gezet en bij t terugschakelen verdwijnt de textarea en wordt die inhoud weer de body. Duidelijk?
Het probleem is nu dat als er bijvoorbeeld een tabel in de pagina is toegevoegd er automatisch <br> achter bijna elke tag verschijnt wanneer je naar codeview omschakelt. Dit is niet de bedoeling! Schakel je nog een keer dan gebeurt t weer, waardoor er nog meer <br>'en bij komen.
Iemand enig idee hoe dit te verhelpen is? Alle <br>'en verwijderen is geen optie, want bestaande <br>'en moeten er wel in blijven natuurlijk.