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

Welcher Profi kann das in Netscape umwandeln?

Robert

New member
Hallo!

Kann man den folgenden Code irgendwie auch
auf Netscape umschreiben?

Ist ein Textarea-Counter, der allerdings
nicht wie gewohnt den Counter in einem
INPUT-Feld ausgibt, sondern in einem
<div>-Tag.

Funktioniert bei MSIE problemlos,
bei Netscape "natürlich" nicht ;)

Das man das dann mit Layern machen muß
und ev. mit document.write und
nicht onkeyup + onkeypress sondern
onchange oder ähnlichen weiß ich
schon, aber nicht genau wie
es funktionieren könnte.

Kann jemand Tipps geben, ev.
Code-Beispiele von ähnlichen
Sachen oder ev. sogar die Lösung?

Bye,
Rob

<html>
<head>
<script language=javascript>

function taLimit()

{

var taObj=event.srcElement;
if(taObj.value.length==taObj.maxLength*1)
{return false;}

}

function taCount(visCnt)

{

var taObj=event.srcElement;
if (taObj.value.length>taObj.maxLength*1)
{taObj.value=taObj.value.substring(0,taObj.maxLength*1);}
if (visCnt)
{visCnt.innerText=taObj.maxLength-taObj.value.length;}

}

</script>
</head>

<body>


<TEXTAREA onkeypress="return taLimit()" onkeyup="return taCount(myCounter)"
name=egal wrap=physical maxLength=255></TEXTAREA>

<p>

<SPAN id=myCounter>255</SPAN> zeichen noch übrig

</body></html>
 
Hallo!

Versuchs mal damit:

Code:
<html> 
<head> 
<script language=javascript> 

    var agt=navigator.userAgent.toLowerCase();

    var is_major = parseInt(navigator.appVersion);
    var is_minor = parseFloat(navigator.appVersion);

    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));

    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav6 = (is_nav && (is_major == 5));
    var is_gecko = (agt.indexOf('gecko') != -1);

    var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

function taLimit() 

{ 

var taObj=event.srcElement; 
if(taObj.value.length==taObj.maxLength*1) 
{return false;} 

} 

function taCount(visCnt) 

{ 

var taObj=event.srcElement; 
if (taObj.value.length>taObj.maxLength*1) 
{taObj.value=taObj.value.substring(0,taObj.maxLength*1);} 
if (visCnt) 
{
    if(is_ie)
    {
         document.all[visCnt].innerHTML = taObj.maxLength-taObj.value.length;
    }
    else if(is_nav4)
    {
        document[visCnt].document.open();
        document[visCnt].document.write(taObj.maxLength-taObj.value.length);
        document[visCnt].document.close();  
    }
    else if(is_nav6 || is_gecko)
    {
         document.getElementById(visCnt).innerHTML = taObj.maxLength-taObj.value.length;       
    }
} 

</script> 
</head> 

<body> 


<TEXTAREA onkeypress="return taLimit()" onkeyup="return taCount(myCounter)" 
name=egal wrap=physical maxLength=255></TEXTAREA> 

<p> 

<SPAN id=myCounter>255</SPAN> zeichen noch übrig 

</body></html>

So, sollte eigentlich funktionieren, habs aber nicht getestet.
Dasmit den Eventhandlern weiß ich jetzt nicht so genau, vielleicht postet aber auch einer noch den Teil dazu, sonst muß ich halt noch mal meine Bücher zücken.
 
Zuletzt bearbeitet:
Hey Coment,

danke, das sieht doch immerhin schon nach dem richtigem Weg aus.

In das Script muß noch vor und nach textarea ein form rein,
sonst erkennt Netscape das ja mal wieder nicht richtig.

3 Fehler treten auf:

NETSCAPE JavaScript Error: file:/C|/WINDOWS/DESKTOP/TEST.HTM, line 24:
event is not defined.
--> damit ist var taObj=event.srcElement; gemeint

NETSCAPE JavaScript Error: file:/C|/WINDOWS/DESKTOP/TEST.HTM, line 61:
taCount is not defined.
--> damit ist taCount im textarea gemeint

EXPLORER line 85:
Objekt erwartet (textarea damit gemeint)

Infos zu Eventhandlern gibts hier:

http://www.netzwelt.com/selfhtml/javascript/sprache/eventhandler.htm

Mir würde übrigens auch eine reine Netscape-Lösung
reichen, muß nicht unbedingt eine Crossbrowserlösung sein.
Kann das dann je nach Broser includen oder so...

So mal sehen ob jetzt jemand damit weiterkommt...
hier nochmal das Script mit den form-Änderungen:

<html>
<head>
<script language=javascript>

var agt=navigator.userAgent.toLowerCase();

var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);

var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
&& (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));

var is_nav4 = (is_nav && (is_major == 4));
var is_nav6 = (is_nav && (is_major == 5));
var is_gecko = (agt.indexOf('gecko') != -1);

var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

function taLimit()

{

var taObj=event.srcElement;
if(taObj.value.length==taObj.maxLength*1)
{return false;}

}

function taCount(visCnt)

{

var taObj=event.srcElement;
if (taObj.value.length>taObj.maxLength*1)
{taObj.value=taObj.value.substring(0,taObj.maxLength*1);}
if (visCnt)
{
if(is_ie)
{
document.all[visCnt].innerHTML = taObj.maxLength-taObj.value.length;
}
else if(is_nav4)
{
document[visCnt].document.open();
document[visCnt].document.write(taObj.maxLength-taObj.value.length);
document[visCnt].document.close();
}
else if(is_nav6 || is_gecko)
{
document.getElementById(visCnt).innerHTML = taObj.maxLength-taObj.value.length;
}
}

</script>
</head>

<body>

<form>
<TEXTAREA cols=20 rows=4 onkeypress="return taLimit()" onkeyup="return taCount(myCounter)" name=egal wrap=physical maxLength=255></TEXTAREA>
</form>
<p>

<SPAN id=myCounter>255</SPAN> zeichen noch übrig

</body></html>
 
Zurück
Oben