Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formatowanie wpisywanego tekstu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
senor_d
Nie moge rozwiazac problemu z funkcja w JS ktora po zaznaczeniu czesci tekstu w polu i nacisnieciu przycisku wykonywujacego funkcje obejmywalaby ten tekst w tagi np . Tak jak jest tutaj na tym forum w dodawaniu postow. Bardzo tego potrzebuje. Z gory dzieki
revyag
Link: http://www.webgurusforum.com/8/12/0
Lekka modyfikacja:
Kod
<script type="text/javascript">
function Bold() {
    
    var txtarea = document.getElementById("area");
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    
    document.getElementById("area").value=
    (txtarea.value).substring(0,selStart)+
    "[B]"+(txtarea.value).substring(selStart, selEnd)+"[/B]" +
    (txtarea.value).substring(selEnd,txtarea.value.length);
}
</script>

  1. <form onsubmit="return false">
  2. <textarea id="area" style="width:300px;height:150px"></textarea><br /><br />
  3. <button onclick="Bold()">B</button>
  4. </form>

Pięknie to nie wygląda, ale robi to co chcesz smile.gif
senor_d
Działa i wygląda pieknie smile.gif. "SelectionStart", "SelectionEnd" - tego nie znalem. Teraz bedzie mozna to wykozystac i w innych przypadkach. Dzieki wielkie.

Upgrade'owalem troszeczke te funkcje.

Kod
function Bold() {

    var txtarea = document.getElementById("wpis");
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    var length = ((txtarea.value).substring(selStart, selEnd)).length;
    var b = document.getElementById("b").value;

if (length >= 1) {

    document.getElementById("wpis").value = (txtarea.value).substring(0,selStart) + "[B]" +
    (txtarea.value).substring(selStart, selEnd) + "[/B]" + (txtarea.value).substring(selEnd,txtarea.value.length);

} else {

    if (b == "B") {

    document.getElementById("b").value = "B *";
    document.getElementById("wpis").value = (txtarea.value).substring(0,selStart) + "[B]" + (txtarea.value).substring(selEnd,txtarea.value.length);

    } else if (b == "B *") {

    document.getElementById("b").value = "B";
    document.getElementById("wpis").value = (txtarea.value).substring(0,selStart) + "[/B]" + (txtarea.value).substring(selEnd,txtarea.value.length);

    }

}

document.getElementById("wpis").focus();

}


  1. <input type="button" value="B" id="b" onClick="Bold()" onFocus="blur()">
  2. <textarea id="wpis"></textarea>

To dla takich jak ja zeby nie musieli juz szukac i pisac postow od niechcenia.

//edit
PILNE!! Czy ktos jest w stanie (ktos na pewno) dodac jeszcze w powyzszym skrypcie obsluge dla IE. Chodzi tu glownie o znajdowanie miejsca rozpoczecia i konca zaznaczenia. Problem jest tylko z IE. Probowalem TextRange() i createTextRange() ale za nic nie kumam jak znalezc ten poczatek i koniec sad.gif POMOCY!!!
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.