Ik ben bezig met een javascript editor die een document doorzoekt op textarea's en hier een UBB-like toolbar boven hangt en een "gutter" (met regelnummers) ernaast hangt. Deze gutter maak ik mbv een extra textarea. Relevante delen van de code:
Regel 22 veroorzaakt alle ellende. Omdat ik hier een textarea aan de DOM toevoeg, raakt de loop uit regel 5 - 12 in een oneindige loop en bevriest mijn browser. Toch heb ik de gutter-textarea nodig. Hoe kan ik hier omheen werken?
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| function editorInit() { var theTextareas = document.getElementsByTagName('textarea'); var thisTextarea, i = 0; while ((thisTextarea = theTextareas[i++])) { if (thisTextarea.hasClass('form-text')) { if (thisTextarea.id == '') { thisTextarea.id = thisTextarea.name; } new textEditor(thisTextarea); } } } function textEditor(textarea) { var container = createNode('div', {'id' : textarea.name + '-txtContainer'}); this.textarea = parent.removeChild(textarea); this.toolbar = this.createToolbar(); this.gutter = this.createGutter(); container.appendChild(this.toolbar); container.appendChild(this.gutter); container.appendChild(this.textarea); } Object.extend(textEditor.prototype, { createGutter : function() { var target = this.textarea; gutter = createNode('textarea', {'id' : target.name + '-gutter'}); return gutter; } } |
Regel 22 veroorzaakt alle ellende. Omdat ik hier een textarea aan de DOM toevoeg, raakt de loop uit regel 5 - 12 in een oneindige loop en bevriest mijn browser. Toch heb ik de gutter-textarea nodig. Hoe kan ik hier omheen werken?