Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Wstawianie znaczników
Forum PHP.pl > Forum > Przedszkole
b_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...
deirathe
Ja znalazłem coś takiego, niesprawdzałem czy działa bo nie mam już dziś siły główkować ale spróbuj, może pomoże tongue.gif:
  1. <script type="text/javascript">
  2. function insertAtCursor(myField, myValue) {
  3. //IE support
  4. if (document.selection) {
  5. myField.focus();
  6. sel = document.selection.createRange();
  7. sel.text = myValue;
  8. }
  9. //MOZILLA/NETSCAPE support
  10. else if (myField.selectionStart || myField.selectionStart == 0) {
  11. var startPos = myField.selectionStart;
  12. var endPos = myField.selectionEnd;
  13. myField.value = myField.value.substring(0, startPos)
  14. + myValue
  15. + myField.value.substring(endPos, myField.value.length);
  16. } else {
  17. myField.value += myValue;
  18. }
  19. }
  20. // calling the function
  21. insertAtCursor(document.formName.fieldName, this value);
b_chmura
ma się rozumieć "myField" to jest nazwa formularza a "myValue" to nazywa <textarea>?
deirathe
Specjalnie dla Ciebie resztkami sił zmodyfikowałem skrypt i podrzucam, cały ze stroną czyli skrypt i przykłąd:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>Untitled Document</title>
  5. <script type="text/javascript">
  6. function insertAtCursor(myField, myValueStart, myValueEnd) {
  7. //IE support
  8. if (document.selection) {
  9. myField.focus();
  10. sel = document.selection.createRange();
  11. sel.text = myValueStart+sel.text+myValueEnd;
  12. }
  13. //MOZILLA/NETSCAPE support
  14. else if (myField.selectionStart || myField.selectionStart == 0) {
  15. var startPos = myField.selectionStart;
  16. var endPos = myField.selectionEnd;
  17. myField.value = myField.value.substring(0, startPos)+ myValueStart+myField.value.substring(startPos,endPos)+myValueEnd+myField.value.substring(endPos, myField.value.length);
  18. } else {
  19. myField.value += myValue;
  20. }
  21. }
  22. </head>
  23.  
  24. <input type="button" onclick="java script:insertAtCursor(fo.te, ':start:',':end:')" />
  25. <form name="fo">
  26.  
  27. <textarea name="te" >
  28. aasd asd asd asd
  29.  
  30. </form>
  31. </body>
  32. </html>


tylko wywal spacje pomiedzy java script te forum samo mi to wrzucilo
b_chmura
Francja elegancja proszę Pana jestem Ci winny przysługę tongue.gif
deirathe
Proszę bardzo :]
p.s. może kiedyś z tego skorzystam tongue.gif, kto wie...
b_chmura
Witam powtórnie:P
Proszę Pana lub inni jak do tego powyższego kodu dodać taki rarytas:

Skrypt sprawdza czy jakiś tekst został zaznaczony, jeśli tak robi to co w/w funkcja, jeśli nie (czyli jeśli tekst nie jest zaznaczony tylko kursor klawiatury miga sobie w jednym miejscu) dodaje wpierw jedną opcję (jeśli jest to pogrubienie tekstu to [ b ] ) przy a kolejny klik buttona spowoduje dodanie zamknięcia owego znacznika.

Myślę ze wyraziłem się dość wyrozumiale smile.gif

Byłbym bardzo wdzięczny za pomoc

pozdrawiam was i całą waszą rodzinę
Chmura
deirathe
No to już jest bardziej skomplikowane, i troszku za późno może jutro coś wymyślę to podeślę, zawsze masz google tongue.gif poszukaj, googlujcie a znajdziecie tongue.gif
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.