[js] wsatawianie znaczników

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
Chmura
Przelotem
Przelotem
Posty: 220
Rejestracja: ndz gru 31, 2006 12:46 am
Lokalizacja: o stamtąd
Kontakt:

[js] wsatawianie znaczników

Post autor: Chmura »

Witam
Ostatnio dość szeroko szukałem skryptu który umożliwił by mi (tak samo jak na tym forum) wstawianie wybranych znaczników w miejsce kursora i pomiędzy zaznaczonym tekstem, poszukiwania się nie powiodły ponieważ albo nie spełniał tych wymogów albo działał tylko pod IE. Dysponuje ktoś może takim skryptem?

P.S: sprawdzałem w kodzie źródłowym strony ale jest tutaj tego za dużo...
BaZa92
Nowy
Nowy
Posty: 82
Rejestracja: śr maja 02, 2007 1:04 pm
Lokalizacja: z nienacka
Kontakt:

Re: [js] wsatawianie znaczników

Post autor: BaZa92 »

Miałem takie same pytanie, i otrzymałem następującą odpowiedź:
Kod JS

Kod: Zaznacz cały

function add(){
   var text ="mój tekst";
   var ta = document.getElementById("textareaIdValue");
   ta.innerHTML = ta.innerHTML + text;
} 
Kod html buttona

Kod: Zaznacz cały

<input type="button" onclick="add()" value="dodaj tekst" /> 
Textarea ma atrybut id ="textareaIdValue";
Skryp ten jako tako działa, lecz dodaje tekst nie w miejsce kursora, lecz na końcu wiersza. Są też z nim problemy na fajerofkxie.
Chmura
Przelotem
Przelotem
Posty: 220
Rejestracja: ndz gru 31, 2006 12:46 am
Lokalizacja: o stamtąd
Kontakt:

Re: [js] wsatawianie znaczników

Post autor: Chmura »

Szczerze powiedziawszy ten skrypt raczej nikomu się nie przyda...

na innym forum dostałem satysfakcjonującą odpowiedz (podam ją również tutaj by ktoś potrzebujący nie musiał się trudzić)

Kod: Zaznacz cały

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Strona WWW</title>
<script type="text/javascript">
function wstaw(form_texarea, poczatek, koniec) 
{
	//IE support
	if (document.selection) 
	{
		form_texarea.focus();
		sel = document.selection.createRange();
		sel.text = poczatek+sel.text+koniec;
	}
	//MOZILLA/NETSCAPE support
	else if(form_texarea.selectionStart || form_texarea.selectionStart == 0) 
	{
		var startPos = form_texarea.selectionStart;
		var endPos = form_texarea.selectionEnd;
		form_texarea.value = form_texarea.value.substring(0, startPos)+ poczatek+form_texarea.value.substring(startPos,endPos)+koniec+form_texarea.value.substring(endPos, form_texarea.value.length);
	}
	else 
	{
		form_texarea.value += myValue;
	}
}
</script>
</head>

<body>
	<input type="button" value=":start: :end:" onclick="wstaw(formularz.tekst, ':start:',':end:')" />
	<form name="formularz">
		<textarea name="tekst" rows="5" cols="80" >tekst tekst tekst tekst jeszcze więcej tekstu</textarea>
	</form>
</body>
</html>
ODPOWIEDZ