Cursor tussen UBB codes
Aangezien ik niet in de koffiehoek kan komen stel ik mijn vraag hier wel..
Ik zit nu met de volgende code voor mijn UBB parser:
Hoe zorg ik ervoor dat de cursor dan tussen de tags komt te staan?
Dan heb ik ook nog een knop om een url/afbeelding in te voegen:
Hoe kan ik ervoor zorgen dat er niks wordt toegevoegd als je op annuleren drukt? Want nu komt er als link "null" te staan.
Ik zit nu met de volgende code voor mijn UBB parser:
Code (php)
1
2
3
4
2
3
4
function addUbbcode(code) {
document.add.bericht.value += code
document.add.bericht.focus()
}
document.add.bericht.value += code
document.add.bericht.focus()
}
Code (php)
1
2
2
Ik voeg dan bijvoorbeeld [b][/b] toe met de volgende code:
<a href="javascript:addUbbcode('[b][/b]')"><img src='images/bold.png' title='Dikgedrukt' border='0' alt='Dikgedrukt' /></a>
<a href="javascript:addUbbcode('[b][/b]')"><img src='images/bold.png' title='Dikgedrukt' border='0' alt='Dikgedrukt' /></a>
Hoe zorg ik ervoor dat de cursor dan tussen de tags komt te staan?
Dan heb ik ook nog een knop om een url/afbeelding in te voegen:
Code (php)
1
2
3
4
5
2
3
4
5
function img(){
var img = prompt("URL:", "http://www.link-afbeelding.nl/afbeelding.jpg");
document.add.bericht.value += "[img]" + img + "[/img]";
document.add.bericht.focus()
}
var img = prompt("URL:", "http://www.link-afbeelding.nl/afbeelding.jpg");
document.add.bericht.value += "[img]" + img + "[/img]";
document.add.bericht.focus()
}
Hoe kan ik ervoor zorgen dat er niks wordt toegevoegd als je op annuleren drukt? Want nu komt er als link "null" te staan.
Gesponsorde koppelingen:
function img(){
var img = prompt("URL:", "http://www.link-afbeelding.nl/afbeelding.jpg");
if(img.length > 0){ // zou kunnen zijn dat je moet testen op de standaardwaarde + '' of evt zelfs op null.
document.add.bericht.value += "
";
document.add.bericht.focus()
}
}
var img = prompt("URL:", "http://www.link-afbeelding.nl/afbeelding.jpg");
if(img.length > 0){ // zou kunnen zijn dat je moet testen op de standaardwaarde + '' of evt zelfs op null.
document.add.bericht.value += "
";document.add.bericht.focus()
}
}
En hoe zorg ik ervoor dat de pointer tussen de twee tags komt?
Dat zul je moeten doen door middel van de selection-objects.
In IE is dat document.selection en voor de meeste andere browsers is dat window.getSelection/selectionStart/selectionEnd (misschien ondersteunt IE8 ook al wel window.getSelection).
Kijk anders eens hier: http://the-stickman.com/web-development/javascript/finding-selection-cursor-position-in-a-textarea-in-internet-explorer/
In IE is dat document.selection en voor de meeste andere browsers is dat window.getSelection/selectionStart/selectionEnd (misschien ondersteunt IE8 ook al wel window.getSelection).
Kijk anders eens hier: http://the-stickman.com/web-development/javascript/finding-selection-cursor-position-in-a-textarea-in-internet-explorer/
Code (php)
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
56
57
58
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
56
57
58
<script type="text/javascript">
//from: mylittleforum.org
function insertext(what)
{
if (document.form.bericht.createTextRange)
{
document.form.bericht.focus();
document.selection.createRange().duplicate().text = what;
}
else if ((typeof document.form.bericht.selectionStart) != 'undefined') // für Mozilla
{
var tarea = document.form.bericht;
var selEnd = tarea.selectionEnd;
var txtLen = tarea.value.length;
var txtbefore = tarea.value.substring(0,selEnd);
var txtafter = tarea.value.substring(selEnd, txtLen);
var oldScrollTop = tarea.scrollTop;
tarea.value = txtbefore + what + txtafter;
tarea.selectionStart = txtbefore.length + what.length;
tarea.selectionEnd = txtbefore.length + what.length;
tarea.scrollTop = oldScrollTop;
tarea.focus();
}
else
{
document.form.bericht.value += what;
document.form.bericht.focus();
}
}
</script>
//from: mylittleforum.org
function insertext(what)
{
if (document.form.bericht.createTextRange)
{
document.form.bericht.focus();
document.selection.createRange().duplicate().text = what;
}
else if ((typeof document.form.bericht.selectionStart) != 'undefined') // für Mozilla
{
var tarea = document.form.bericht;
var selEnd = tarea.selectionEnd;
var txtLen = tarea.value.length;
var txtbefore = tarea.value.substring(0,selEnd);
var txtafter = tarea.value.substring(selEnd, txtLen);
var oldScrollTop = tarea.scrollTop;
tarea.value = txtbefore + what + txtafter;
tarea.selectionStart = txtbefore.length + what.length;
tarea.selectionEnd = txtbefore.length + what.length;
tarea.scrollTop = oldScrollTop;
tarea.focus();
}
else
{
document.form.bericht.value += what;
document.form.bericht.focus();
}
}
</script>
haal het er maar uit
@martin: jouw script werkt gedeeltelijk, hij wordt iig toegevoegd waar je je cursor neer zet, alleen kan ik de tags niet om geselecteerde tekst plaatsen en de cursor wordt niet tussen de tags geplaatst.
@jan: ik heb alle wegen geprobeerd, maar ik krijg m niet werkend...
@jan: ik heb alle wegen geprobeerd, maar ik krijg m niet werkend...
Quote:
Wat krijg je niet werkend? Krijg je er ook foutmeldingen bij? Graag iets specifieker :Dik heb alle wegen geprobeerd, maar ik krijg m niet werkend...
ik heb geprobeerd om er een functie van te maken, maar dat lukte niet echt.
de code die ik daarbij probeerde heb ik ook niet meer.
ik kreeg het niet voor elkaar om het script te gebruiken...
een voorbeeldje? :$
de code die ik daarbij probeerde heb ik ook niet meer.
ik kreeg het niet voor elkaar om het script te gebruiken...
een voorbeeldje? :$
Zoek anders even op 'caret JS' bij google. De cursor heet namelijk eigenlijk caret. Er staat genoeg informatie op internet, als je maar de goede benaming weet.



