<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" /> <script type="text/javascript"> $(document).ready(function(){ $('#add_bold').bind('click', function(){ var input = $("textarea#dddd"); var range = input.caret(); var tekst =//przykładowo "(b)(/b)"; // Insert text at caret then restore caret var value = input.val(); input.val(value.substr(0, range.start) + tekst + value.substr(range.end, value.length)); input.caret(range.start + tekst.length); return false; }); }); </script> </head> <body> <form action="index.html" method="post"> <input type="button" id="add_bold" value="Pogrubienie"/> <input type="submit" value="Dodaj"/> </form> </body> </html>
Korzystam z pluginu JQuery o nazwie caret-range, którego kod można znaleźć tu caret_range
Ogólnie skrypt działa poprawnie w Firefox (dodaje tagi niezależnie od pozycji kursora tekstu), ale już IE6 kod nie wykonuje się poprawnie, ponieważ dodaje mi tagi pogrubienia tylko na początku tekstu niezależnie od pozycji w jakiej ustawię kursor tekstu za pomocą myszki. Kod dla $('#add_bold').bind('click', function() jest skopiowany ze strony pluginu i zastosowany dla własnych potrzeb.
Niby jQuery działa tak samo niezależnie od rodzaju przeglądarki ale to nie działa. Próbowałem już BBcode4.js ale nie odpowiada mi to. Poproszę o pomoc.