Ik ben ergens mee bezig wat eigenlijk min of meer over het randje van mijn beperkte hersencapaciteit gaat,
het betreft het volgende.
Ik heb een wysiwyg editor gebouwd, die tot nu toe prima werkt, het is me gelukt om (bijna) xhtml strikte code te genereren. Maar bij de volgende functionaliteit stopt het bij mij: Het samenvoegen van tabel cellen...
Het was me gelukt om verticaal kolommen samen te voegen en hierbij rekening te houden met colSpans, zodat de tabel gewoon prima klopte, maar eventjes was me ontschoten dat je natuurlijk ook verticaal cellen moet kunnen samenvoegen, tja, ik ben een paar keer begonnen om een functie in elkaar te breien, maar het lukt me eigenlijk nog niet eens een fatsoenlijk begin op te zetten..
Even een stukje voorbeeldcode die ik gebruik om horizontaal cellen samen te voegen..
Horizontaal samenvoegen is nog relatief eenvoudig, maar verticaal..
De vraag is eigenlijk, hoe kom ik te weten welke cellen er onder, of boven de geselecteerde cell liggen, ook als deze een rowspan óf een colspan heeft óf als de bovenliggende regels cellen bevatten met een row of colspan?
Overigens viel me op dat er nog maar weinig mensen problemen hebben gehad met een dergelijke functionaliteit, of heb ik gewoon heel slecht gezocht?
Ik heb nog de functies doorgesluisd die tinyMCE gebruikt voor het samenvoegen van cellen, maar daar kom ik ook niet uit. Die editor gebruikt een soort visuele tabel..
Ik hoop dat het een klein beetje duidelijk is en dat jullie me een beetje verder kunnen helpen..
Ik heb een wysiwyg editor gebouwd, die tot nu toe prima werkt, het is me gelukt om (bijna) xhtml strikte code te genereren. Maar bij de volgende functionaliteit stopt het bij mij: Het samenvoegen van tabel cellen...
Het was me gelukt om verticaal kolommen samen te voegen en hierbij rekening te houden met colSpans, zodat de tabel gewoon prima klopte, maar eventjes was me ontschoten dat je natuurlijk ook verticaal cellen moet kunnen samenvoegen, tja, ik ben een paar keer begonnen om een functie in elkaar te breien, maar het lukt me eigenlijk nog niet eens een fatsoenlijk begin op te zetten..
Even een stukje voorbeeldcode die ik gebruik om horizontaal cellen samen te voegen..
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| //editorSelectedTableCol = de geselecteerde cell //Is er een volgende kolom? if(editorSelectedTableCol.nextSibling){ //Heeft deze een colspan? if(editorSelectedTableCol.nextSibling.getAttribute("colSpan") == null){ //Zo niet, colspan is 1 editorSelectedTableCol.nextSibling.setAttribute("colSpan",1); } //Heeft de geselecteerde cell een colspan? if(editorSelectedTableCol.getAttribute("colSpan") == null){ //Zo niet, colspan is 1 editorSelectedTableCol.setAttribute("colSpan",1); } //colspan bepalen editorSelectedTableCol.setAttribute("colSpan",parseInt(editorSelectedTableCol.getAttribute("colspan")) + parseInt(editorSelectedTableCol.nextSibling.getAttribute("colspan"))); //innerhtml van volgende cell toevoegen aan huidige editorSelectedTableCol.innerHTML += editorSelectedTableCol.nextSibling.innerHTML; //volgende cell verwijderen editorSelectedTableCol.parentNode.deleteCell(editorSelectedTableCol.nextSibling.cellIndex); } |
Horizontaal samenvoegen is nog relatief eenvoudig, maar verticaal..
De vraag is eigenlijk, hoe kom ik te weten welke cellen er onder, of boven de geselecteerde cell liggen, ook als deze een rowspan óf een colspan heeft óf als de bovenliggende regels cellen bevatten met een row of colspan?
Overigens viel me op dat er nog maar weinig mensen problemen hebben gehad met een dergelijke functionaliteit, of heb ik gewoon heel slecht gezocht?
Ik heb nog de functies doorgesluisd die tinyMCE gebruikt voor het samenvoegen van cellen, maar daar kom ik ook niet uit. Die editor gebruikt een soort visuele tabel..
Ik hoop dat het een klein beetje duidelijk is en dat jullie me een beetje verder kunnen helpen..