1

tirsdag, 10. oktober 2006, 14:58


Hej

Jeg søger en function ala den her på tweak hvor man trykker på smileyen og så skriver den automatisk hvad den hedder her i text-vinduet (her hvor jeg skriver) fx " : drink : " uden mellemrum self, altså: :drink:

Indtil videre har jeg det her:

<img src="img/smileys/biggrin.gif" alt="Big Grin" title="Big Grin" border="0" onclick="smiley(':Big Grin:');" onmouseover="this.style.cursor='hand';" />

Men nu mangler jeg bare en function noget ligende det her:

function smiley(text) {
var txtarea = document.form.beskrivelse;
text = ' ' + text + ' ';
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
} else {
txtarea.value += text;
txtarea.focus();
}
}

Problemet ved den her function er bare at den altid skriver "smiley-navnet" til sidst og ikke der hvor man sætter sin cursor

Bar smid nogle forslag :)

På forhånd tak...

Lehn

2

tirsdag, 10. oktober 2006, 15:14


Lidt javascript kode er aldrig ad vejen, da browserne tolker ting lidt forskelligt som altid er vi nødt til at tjekke for IE og mozilla/gecko engine, hvis ingen understøttelse smider vi bare smileyen ind til slut i feltet

Kildekode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function smiley(txt) {
	var txtarea = document.forms['form'].elements['beskrivelse']; //dit textarea
	if (!txtarea) { //fang fejl 
		alert('Feltet findes ikke'); 
	} else {
		/* Først tager vi hensyn til IE - document.selection er IE specifik */
		if (document.selection) {
			txtarea.focus(); //sæt fokus til feltet
			var valgt = document.selection.createRange(); //lav en selektion i feltet
			valgt.text = txt; //sæt teksten ind
		}
		/* Gecko */ 
		else if (txtarea.selectionStart) {
			var start = txtarea.selectionStart; //start af selection
			var slut = txtarea.selectionEnd;//slut
			txtarea.value = txtarea.value.substring(0, start)+ txt+ txtarea.value.substring(slut, txtarea.value.length);//sæt den ind imellem start og slut
		} else { /* hvis ingen understøttelse, eller cursoren ikke er placeret, smid smiley i slutningen 

*/
			txtarea.value += txt;//tilføj i enden
		}
	}
}


Håber det kan bruges

Dette indlæg er blevet redigeret 1 gange, senest redigeret af "WebT" (10.10.2006, 15:16)


3

tirsdag, 10. oktober 2006, 16:07


Citeret

Originally posted by WebT
Lidt javascript kode er aldrig ad vejen, da browserne tolker ting lidt forskelligt som altid er vi nødt til at tjekke for IE og mozilla/gecko engine, hvis ingen understøttelse smider vi bare smileyen ind til slut i feltet

Kildekode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function smiley(txt) {
	var txtarea = document.forms['form'].elements['beskrivelse']; //dit textarea
	if (!txtarea) { //fang fejl 
		alert('Feltet findes ikke'); 
	} else {
		/* Først tager vi hensyn til IE - document.selection er IE specifik */
		if (document.selection) {
			txtarea.focus(); //sæt fokus til feltet
			var valgt = document.selection.createRange(); //lav en selektion i feltet
			valgt.text = txt; //sæt teksten ind
		}
		/* Gecko */ 
		else if (txtarea.selectionStart) {
			var start = txtarea.selectionStart; //start af selection
			var slut = txtarea.selectionEnd;//slut
			txtarea.value = txtarea.value.substring(0, start)+ txt+ txtarea.value.substring(slut, txtarea.value.length);//sæt den ind imellem start og slut
		} else { /* hvis ingen understøttelse, eller cursoren ikke er placeret, smid smiley i slutningen 

*/
			txtarea.value += txt;//tilføj i enden
		}
	}
}


Håber det kan bruges


Så nice :D virker perfekt ;) Mange tak, har bakset med det hele aftenen i går uden at få det til at virke og så er det kun en "tråd" væk :rules:

Du kan se tagwallen her www.diox.dk når jeg får det op at køre senere ;)

Lehn

Nyeste Videoer og Trailers

Partner sider
Indsend nyhed
Har du fundet en fed nyhed så indsend den så alle andre på Tweak.dk kan få glæde af den.