Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ustawienie kursora w danej pozycji
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
expert
W jaki sposób ustawić kursor np. 10 znaków od początku textarea?
Zmorcia
Hmm, bez spacji nie da się:

Tutaj masz kod:

Kod
<textarea onFocus="this.value='          ';"></textarea>
zegarek84
mi się wydaje że to raczej jest mu potrzebne do obsługi edytora bbcode lub czegoś w tym stylu:
http://www.flashzone.pl/forum2/showthread.php?t=63214

i jeszcze darmowy edytor bbcode jaki na szybko znalazłem na google to możesz przejrzeć jego składowe funkcje - tak na szybko to nie dodaje znaczników w operze pod linuksem na końcu:
http://corpocrat.com/2008/08/15/free-wysiw...-in-javascript/

w mozilii dla przykłądu musisz początek zqaznaczenia i koniec dać jako tą samą wartość by w tym miejscu mieć kursor - miałem wiele przydatnych linków ale niestety sobie nie zarchiwizowałem zakłądek jak przeinstalowywałem linuxa - ale to się łatwo w google szuka winksmiley.jpg
expert
Zapomniałem napisać że textarea jest wypisany jakimś textem i po kliknięciu jakiegoś buttony, żeby ustawiał ten kursor.

A konkretnie to chodzi mi o bbcode. Mam taki kod:
  1. function bbcode(text){
  2. area = document.getElementById('message');
  3.  
  4. if ( area.selectionStart || area.selectionStart == '0' ) {
  5. var begin = area.selectionStart;
  6. var end = area.selectionEnd;
  7.  
  8. area.value = area.value.substring(0, begin) +'['+text+']'+area.value.substring(begin,end)+'[/'+text+']'+ area.value.substring(end, area.value.length);
  9. }
  10. else {
  11. area.value += '['+text+']';
  12. }
  13.  
  14. area.focus();
  15. }


I chcę, żeby po wstawieniu znacznika bbcode np. [ b][ /b] kursor był po między [ b] a [ /b].
zegarek84
napisałem, że żeby kursor w mozilli był w danym miejscu a nie zaznaczenie to początek i koniec zaznaczenia musi być taki sam ;p - musisz doliczyć liczbę znaków i określić pozycję czyli document.getElementById('message').selectionStart i document.getElementById('message').selectionEnd - w IE jest trochu inaczej...
kilas88
Bawiąc się kilka lat temu w aplikacjach HTA korzystałem z poniższego kodu. Dla IE powinien być aktualny, jak sądzę smile.gif

Kod
function wstaw_znacznik(znacznik, tekst, atrybuty) {
  editbox.focus();

  if (atrybuty) {
    atb = ' '+atrybuty
  } else {
    atb = ''
  };

  var cursor = editbox.document.selection.createRange();
  cursor.pasteHTML('&lt;'+znacznik.toUpperCase()+atb+'&gt;'+tekst+'&lt;/'+znacznik.toUpperCase()+'&gt;');

  moveStart = -(tekst.length+znacznik.length+3);
  moveEnd = -(znacznik.length+4);

  cursor.moveStart("character",moveStart);
  cursor.moveEnd("character",moveEnd);
  cursor.expand("character");

  cursor.select()

}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.