• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Prob mit JS

alexdüsentrieb

New member
Hallo Leute..

Folgendes, ich hab eine Datei : " codes.js " inder :
Code:
function textarea(post)
{
    if(post.createTextRange)
    {
        post.caretPos = document.selection.createRange().duplicate();
    }
}

function pbb(code)
{
    pb = window.prompt("Gebe einen Text ein.","");
    if (document.all)
    {
        text = " [" + code + "]" + pb + "[/" + code + "] ";
        if (document.all.post.createTextRange && document.all.post.caretPos)
        {
            var caretPos = document.all.post.caretPos;
            caretPos.text =  caretPos.text.charAt(caretPos.text.length - 1) == '' ? text + '' : text;
        }
        else
        {
            document.all.post.value  = text;
        }
    }
    else if (document.layers)
    {
        document.forms[0].post.value = document.forms[0].post.value + " [" + code + "]" + pb + "[/" + code + "] ";
    }

}

enthalten ist.

So jetzt mache ich auf einer gewöhnlichen HTML Seite folgendes:
Code:
<input onClick="pbb('b');" type="button" value=" b "> <input onClick="pbb('u');" type="button" value=" u "> <input onClick="pbb('i');" type="button" value=" i ">
<textarea name="post" rows=20 cols=60 onselect="textarea(this);" onclick="textarea(this);" onkeyup="textarea(this);"></textarea>

So folgendes Problem, wenn ich z.B.: auf " b " klicke, öffnet sich ein Java-Script Fenster, dort kann man einen Text eintrage, wenn man da auf " Abbrechen " klickt, dann kommt komischerweise trotzdem noch ein Befehl in die Textarea undzwar folgender:
Code:
 [b]null[/b]
Da soll aber nix hinkommen..

Und noch ein Fehler, wenn man z.B. auf " b " klickt, und im JS Fenster " test " eingibt, dann errscheint in der Textarea
Code:
 [b]test[/b]
Wenn man gleich darauf auf " i " klickt, wird der Text einfach ersetzt...!
Obwohl der dahinter muss..!

Kann mir jemand die zwei Probleme lösen.. Ich schaffs einfach nicht..!!

Wäre super..!!!


Danke schonmal im Vorraus..!!!!

Alex
 
Hallo!

Prob 1:
Code:
function pbb(code)
{
    pb = window.prompt("Gebe einen Text ein.","");

    if(pb)
    {
        if (document.all)
        {
            text = " [" + code + "]" + pb + "[/" + code + "] ";
            if (document.all.post.createTextRange && document.all.post.caretPos)
            {
                var caretPos = document.all.post.caretPos;
                caretPos.text =  caretPos.text.charAt(caretPos.text.length - 1) == '' ? text + '' : text;
            }
            else
            {
                document.all.post.value  = text;
            }
        }
        else if (document.layers)
        {
            document.forms[0].post.value = document.forms[0].post.value + " [" + code + "]" + pb + "[/" + code + "] ";
        }
    }
}

So in der Art --> Mußt abfragen ob pb true oder false is(bei Abbrechen wird false zurückgegeben).

Prob 2 weiß i jetz net.
 
Also bei mir tritt der 2te beschriebene fehler nicht auf,.......

vielleicht liegts daran, dass ich den IE benutz, vielleicht wurde der aber auch schon durch die Berichtigung des ersten fehlers mit berichtigt.

oder ich hab das Problem nicht verstanden.

Also ich hab das teil n paar mal benutz und in der Textarena steht jetzt:

fgfdsgfsg sdfgsdfg sdfgsfg sfgsdfg fgsdfgsdf sdfgsfdg asfasddf adsf asdfasdf

Das kommt auch hin mit den Buchsta´ben, es wurde immer das gemacht, was ich gedrückt habe.......
 
oops, das Forum hat das ganze als eigene Befehle Interpretiert,... egal, Du siehst ja was gemeint ist.....
 
Jo klar.. :)
___________________________

Ich benutze auch den IE, wenn du auf " B" klickst, und dann z.B. " test " eingibst, dann kommt unten in die Textarea

test

Wenn du dann gleich darauf auf den nächsten Code Button klickst, sprich " u ", und dort etwas eingibst, dann wird der text ersetzt..!

Cu
Alex
(danke erstmal.. :) )
 
mmm ich hab versucht das Textfenster mit post.focus(); dazu bewegen den Text dahinter zuschreiben, hat nix gebracht, duch n bisschen spielerei mit dem code hab ich gemerkt, dass es so geht
ersetze
else
{
document.all.post.value =text;
}
durch
else
{
document.all.post.value = document.all.post.value + text;
}

das geht dann,.... jedenfalls bei mir.

komisch finde ich, dass wenn man einmal aufs fenster klickt der Effekt nie mehr auftritt
 
danke erstmal..!

Aber es funktioniert immer noch nicht..

wenn du auf b klickst und dann was eingist, wirds in der textarea angezeit, wenn du ohne etwas anderes zumachen gleich auf i klickst, und dort was eingibst wird der text ersetzt...

hm..

Alex
 
bei mir nicht, ich klick auf b geb test ein. das erscheind in dem Textfeld, dann klick ich sofort auf i und gebt test ein, das erscheind dann hinter dem [/b] und 2 Leerzeichen in dem Testfeld.
 
Hi..!

So hab jetzt ncoh ein Problem..!
Der Code in der JS Datei:
Code:
function textarea(post)
{
    if(post.createTextRange)
    {
        post.caretPos = document.selection.createRange().duplicate();
    }
}

function pbb(code)
{
    pb = window.prompt("Gebe einen Text ein.","");

    if(pb)
    {
        if (document.all)
        {
            text = "[" + code + "]" + pb + "[/" + code + "]";
            if (document.all.post.createTextRange && document.all.post.caretPos)
            {
                var caretPos = document.all.post.caretPos;
                caretPos.text =  caretPos.text.charAt(caretPos.text.length - 1) == '' ? text + '' : text;
            }
			else 
			{ 
			document.all.post.value = document.all.post.value + text; 
			} 
        }
        else if (document.layers)
        {
            document.forms[0].post.value = document.forms[0].post.value + "[" + code + "]" + pb + "[/" + code + "]";
        }
    }
}
function other(code1)
{
    pbcode = window.prompt("Gebe einen Text ein.","");

    if(pbcode)
    {
        if (document.all)
        {
            text1 = "[color=" + code1 + "]" + pbcode + "[/color]";
            if (document.all.post.createTextRange && document.all.post.caretPos)
            {
                var caretPos = document.all.post.caretPos;
                caretPos.text1 =  caretPos.text1.charAt(caretPos.text1.length - 1) == '' ? text1 + '' : text1;
            }
			else 
			{ 
			document.all.post.value = document.all.post.value + text1; 
			} 
        }
        else if (document.layers)
        {
            document.forms[0].post.value = document.forms[0].post.value + "[color=" + code1 + "]" + pbcode + "[/color]";
        }
    }
}


Der Code auf der HTML Seite:
Code:
<input onClick="pbb('b');" type="button" value=" b "> <input onClick="pbb('u');" type="button" value=" u "> <input onClick="pbb('i');" type="button" value=" i ">
<select onchange="other(options[this.selectedIndex].value)">
<option selected>COLOR</option>
<option value="blue">blau</option>
<option value="red">rot</option>
<option value="green">grün</option>
<option value="yellow">gelb</option>

Problem:
So folgendes Problem, dieses mal mit der Select Box, undzwar,wenn ich z.B. die Farbe " blau " aussuche, und dann z.B. im Eingabefeld " test " hinschreibe, dann erscheint folgendes:

test

Wenn ich jetzt nachdem Code was schreibe, und dann nochmal einen "COLOR" Code einfügen will geht das nicht..!


Danke im vorraus..!

Cu
Alex
 
Hallo!

Ich kann hier beim besten Willen nicht erkennen wo die Farbe des Textes geändert wird bzw. wo der übergebene Wert aus der Checkbox verwendet wird --> code1.

??
 
Hallo!

Versuch doch einfach mal am Ende der IF-Schleife die pbcodeVariable auf nix zu setzen:

Code:
function other(code1)
{
    pbcode = window.prompt("Gebe einen Text ein.","");

    if(pbcode)
    {
        if (document.all)
        {
            text1 = "" + pbcode + "";
            if (document.all.post.createTextRange && document.all.post.caretPos)
            {
                var caretPos = document.all.post.caretPos;
                caretPos.text1 =  caretPos.text1.charAt(caretPos.text1.length - 1) == '' ? text1 + '' : text1;
            }
			else 
			{ 
			document.all.post.value = document.all.post.value + text1; 
			} 
        }
        else if (document.layers)
        {
            document.forms[0].post.value = document.forms[0].post.value + "" + pbcode + "";
        }
        [color=red]pbcode = "";[/color] 
    }
}
 
Zuletzt bearbeitet:
Zurück
Oben