Wij gebruiken momenteel de volgende code om smilies toe te voegen in een textarea op de caret position (waar de cursor staat dus) of ter vervanging van de tekst die op dat moment is geselecteerd.
Om dat te kunnen doen moeten we eerst een focus doen (voor IE) om vervolgens te kijken naar de tekst e.d.
Het probleem is alleen dat door die focus de pagina naar beneden springt. Ik kan alleen niks anders bedenken wat toestaat zonder een focus toch in die textarea dingen te doen.
Weet iemand of het mogelijk is om zonder een focus toch informatie over de tekst in de textarea op te slaan?
Hieronder de code, mocht iemand er iets aan hebben?
Om dat te kunnen doen moeten we eerst een focus doen (voor IE) om vervolgens te kijken naar de tekst e.d.
Het probleem is alleen dat door die focus de pagina naar beneden springt. Ik kan alleen niks anders bedenken wat toestaat zonder een focus toch in die textarea dingen te doen.
Weet iemand of het mogelijk is om zonder een focus toch informatie over de tekst in de textarea op te slaan?
Hieronder de code, mocht iemand er iets aan hebben?
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| function storeCursor() { this.cursorPos = document.selection.createRange().duplicate(); } function initSmilies(target) { target = $(target); if (target) { target.focus(); if (target.createTextRange) { target.onkeyup = storeCursor; target.onclick = storeCursor; target.onselect = storeCursor; target.onselect(); } } } function smiley(text, target) { text = ' ' + text + ' '; target = $(target); if (target) { if (target.cursorPos) { var cursorPos = target.cursorPos; cursorPos.text = text; } else if (target.selectionStart != undefined) { // remember scrollposition var scrollTop = target.scrollTop; var sStart = target.selectionStart; var sEnd = target.selectionEnd; target.value = target.value.substr(0, sStart) + text + target.value.substr(sEnd); var nStart = sStart == sEnd ? sStart + text.length : sStart; var nEnd = sStart + text.length; target.setSelectionRange(nStart, nEnd); // reset scrollposition target.scrollTop = scrollTop; } else { target.value += text; } target.focus(); if (target.cursorPos) target.onselect(); } } |
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?