Mam pewien problem z działaniem skryptu Javascript napisanym w jQuery. Chcę za pomocą przycisku dodać własne znaczniki by potem poddać je parsowaniu w PHP. Ale jest problem z działaniem tego kodu:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  5. <title>Cosik</title>
  6. <script src="jquery.js" type="text/javascript"></script>
  7. <script src="caret-range.js" type="text/javascript"></script>
  8. <script type="text/javascript">
  9. $(document).ready(function(){
  10. $('#add_bold').bind('click', function(){
  11. var input = $("textarea#dddd");
  12. var range = input.caret();
  13. var tekst =//przykładowo "(b)(/b)";
  14. // Insert text at caret then restore caret
  15. var value = input.val();
  16.  
  17. input.val(value.substr(0, range.start) + tekst + value.substr(range.end, value.length));
  18. input.caret(range.start + tekst.length);
  19. return false;
  20. });
  21. });
  22. </head>
  23. <form action="index.html" method="post">
  24. <input type="button" id="add_bold" value="Pogrubienie"/>
  25. <textarea id="dddd"></textarea>
  26. <input type="submit" value="Dodaj"/>
  27. </form>
  28. </body>
  29. </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.