SELFHTML

Forums-Auslese
Variablen, Funktionen, Objekte, Kontrollstrukturen

Diese Seite ist ein Dokument mit Informationstext

nach unten Zweidimensionale Arrays erzeugen
nach unten Der Unterschied zwischen eval() und einem simplen + bei Strings
nach unten Bestimmung einzelner Ziffern einer Zahl
nach unten Überprüfung, ob eine Eingabe nur zulässige Zeichen enthält
nach unten Zufallszahlen aus dem Datum generieren
nach unten JavaScript-Variable aus einem anderen Frame auslesen
nach unten Sound mit JavaScript
nach unten Neuer Beitrag in der Forums-Auslese Suchen und Ersetzen von Zeichenfolgen in Zeichenketten
nach unten Neuer Beitrag in der Forums-Auslese Wertübergabe an eine nachfolgende Seite
nach unten Neuer Beitrag in der Forums-Auslese Zahlen mit führender Null und parseInt()

nach unten 

Zweidimensionale Arrays erzeugen

Basierend auf einem Forums-Beitrag vom 09.09.1998 von:
E-Mail Christine Kuehnel, kuehnel@screenExa.net

Das folgende Beispiel demonstriert, wie Sie zweidimensionale Arrays mit JavaScript erzeugen können. Der erste Teil des JavaScripts initialisiert das zweidimensionale Array. Im zweiten Teil erfolgt die Ausgabe des so erzeugten Arrays. Lesen Sie hierzu auch den SELFHTML-Abschnitt Seite Array: Allgemeines zur Verwendung .

<html>
<head><title>Zweidimensionales Array</title></head>

<body>

<script language="JavaScript">
<!--

  a = new Array(4)
   for (i=0; i < 4; i++)
    { a[i] = new Array(4)
      for (j=0; j < 4; j++)
        {a[i][j] = "["+i+","+j+"]"}
    }

  for (i=0; i < 4; i++)
    { str = "Row "+i+":"
      for (j=0; j < 4; j++)
        {str += a[i][j]}
      document.write(str,"<p>")
    }

//-->
</script>

</body>
</html>

Hinweis:

Dieses Beispiel wurde der JavaScript-Dokumentation von Netscape entnommen und kann unter englischsprachige Seite http://developer.netscape.com/docs/manuals/communicator/jsref/core1.htm nachgelesen werden.

nach obennach unten 

Der Unterschied zwischen eval() und einem simplen + bei Strings

Basierend auf einem Forums-Beitrag vom 22.09.1998 von:
E-Mail Christine Kuehnel, kuehnel@screenExa.net

Welcher Aufruf ist der richtige?

eval() ist eine Funktion, die Zeichenketten zu "bewerten" versucht, und zwar im Sinne einer Rechenoperation. Das ist nur die halbe Wahrheit. eval() wandelt nämlich kontextabhängig um.

Zuerst einmal zur Verdeutlichung, die übliche Verfahrensweise sieht so aus:

   ein_Bild = new Image();
   ein_Bild.src = 'bild1.gif';
   document['Bild'].src = ein_Bild.src;

document['Bild'] ist hier ein Objekt mit der Eigenschaft src. ein_Bild ist auch ein Objekt, auch mit der Eigenschaft src. Die Zuweisung erfolgt also zwischen Objekten.

Zurück zum Anfang:
document[name] ist ebenfalls ein Image-Objekt, name dabei ein String (entspricht 'Bild' aus obigen Beispiel). Dessen src-Eigenschaft soll, wie in meinem Beispiel, der src-Eigenschaft eines anderen Objektes gleichgesetzt werden. Das Objekt heißt name. Die Variable name ist ein String. Gesucht wird aber nicht die src-Eigenschaft von dieser String-Variablen (Die gibt es nicht.), sondern die des Image-Objektes mit Namen name.
Dazu muss ein Objekt erzeugen werden. Dies geschieht mit eval(). Wenn in name "Bildchen" steht, dann macht in diesem Kontext eval(name + .src) daraus Bildchen.src, d.h. ein Objekt mit Eigenschaft src. Dies ist eine Möglichkeit mit einem String auszukommen, um verschiedene Image-Objekte ansprechen zu können.

Zur Illustration ein weiteres Beispiel:

<html>
<head>
<title>String + String oder eval()?</title>
<script language="JavaScript">
<!--

function Ausgabe()
{
  alert("Ich bin die Funktion Ausgabe()");
  alert('typeof(Ausgabe) ist ' + typeof(Ausgabe));
  return 1.0;
}

function ueberString(name)
{
  n=name+"()"; alert(n);
  alert('n ist ' + n);
  alert('typeof(n) ist ' + typeof(n));
}

function ueberEval(name)
{
  n=eval(name+"()");
  alert('n ist ' + n);
  alert('typeof(n) ist ' + typeof(n));
}

//-->
</script>
</head>

<body>

<p>
<a href="Javascript:Ausgabe()">die Funktion Ausgabe im Direktaufruf</a>
</p>
<p>
<a href="Javascript:ueberString('Ausgabe')">Berechnung der Funktion Ausgabe über String</a>
</p>
<p>
<a href="Javascript:ueberEval('Ausgabe')">Berechnung der Funktion Ausgabe über Eval</a></p>

</body>
</html>

Die Funktion ueberEval() berechnet den Namen der Funktion Ausgabe(). Anschließend wandelt sie diesen in das Objekt Ausgabe() um und ruft die Funktion auf. Diese wird dann ausgeführt.
Die Funktion ueberString() berechnet ebenfalls den Namen der Funktion. Im Gegensatz zur Verwendung von eval() wird kein Objekt daraus gebildet und die Funktion Ausgabe() wird nicht ausgeführt.
Im Beispiel wird das reservierte Wort typeof verwendet, um den Typ des Elementes anzuzeigen.

nach obennach unten 

Bestimmung einzelner Ziffern einer Zahl

Basierend auf Forums-Beiträgen vom 16.09.1998 von:
E-Mail Thomas Kienzle, Thomas_Kienzle@compuserve.com
E-Mail Stefan Bach, sbach@t-online.de

Beim Extrahieren einer einzelnen Ziffer aus einer Zahl mittels substring erhalten Sie eine Fehlermeldung. Dies liegt daran, dass der Browser die Zahl als Zahl und nicht als String behandelt. Möchten Sie trotzdem dieses Verfahren verwenden, so müssen Sie erst eine "Typkonvertierung" durchführen. Dies erreichen Sie durch Zahl = Zahl + " ". Möchten Sie die Zahl wieder als Zahl interpretieren, genügt es Zahl=Zahl*1 anzugeben. Alternativ können Sie auch Str= Zahl + " " angeben. Zum Extrahieren verwenden Sie dann die Variable Str.

Beispiel:

<script language="JavaScript">
<!--

function Konvertierung1(Zahl)
{
  Zahl=Zahl+" ";
  alert(Zahl.substring(0,1));
  Zahl=Zahl*1;
}

function Konvertierung2(Zahl)
{
  Str=Zahl+" ";
  alert(Str.substring(0,1));
}

//-->
</script>

nach obennach unten 

Überprüfung, ob eine Eingabe nur zulässige Zeichen enthält

Basierend auf einem Forums-Beitrag vom 16.09.1998 von:
E-Mail Timo Ballin, TBallinXXX@aol.com

Mittels JavaScript ist es möglich, Zeichenketten auf unzulässige Zeichen zu überprüfen. Dazu können die Methoden des Seite Stringobjektes lastIndexOf() und charAt() verwendet werden.

Beispiel:

<script language="JavaScript">
<!--

function check(eingabe)
{
  var nur_das ="0123456789-[]/";
  for (a = 0; a < eingabe.length; a++)
   {if (nur_das.indexOf(eingabe.charAt(a))<0 ) return false;}
  return true;
}

//-->
</script>

Erläuterung:

Die Funktion check(eingabe) überprüft, ob die Werte von eingabe nur die vorgegebenen Zeichen enthält. Diese sind in der Variablen nur_das abgelegt.
In dem Beispiel wird die Zeichenkette Zeichen für Zeichen daraufhin überprüft, ob dieses Zeichen in dem Bereich von nur_das vorkommt. Ist dies nicht der Fall, wird sofort abgebrochen und false zurückgegeben.
Entsprechen alle Zeichen dem Wertebereich von nur_das, wird der Wert true zurückgegeben. Die Rückgabewerte können dann entsprechend weiterverarbeitet werden.

nach obennach unten 

Zufallszahlen aus dem Datum generieren

Basierend auf einem Forums-Beitrag vom 21.10.1998 von:
E-Mail Stefan Muenz, muenz@csi.com

Die Methode Math.random() generiert Zufallszahlen. Sie können "zufällige" Zahlen aber auch aus dem Datum erzeugen.

Beispiel:

<html>
<head>
<title>Zufallszahlen</title>
<script language="JavaScript">
<!--

function Zufallszahl(von,bis)
  {
  Jetzt = new Date();
  var Zeit = Jetzt.getTime();
  var Zahl = 0;
  Zahl = Zeit % bis;
  alert(Zahl);
  return(Zahl);
  }

//-->
</script>
</head>

<body>

<a href="JavaScript:Zufallszahl(0,99)">Zufallszahl zwischen 0 und 99</a>

</body>
</html>

Erläuterung:

Mit new Date() wird ein neues Datumsobjekt mit dem Namen Zeit gebildet. Der Variablen Zeit wird mittels Jetzt.getTime() die seit dem 01.01.1970 verflossenen Zeit in Millisekunden zugewiesen. Durch Modulo-Division von Zeit durch die Endzahl ergibt sich ein Rest. Dieser Rest wird als Zufallszahl ausgegeben. Lesen Sie hierzu auch die SELFHTML-Abschnitte Seite getTime() und Seite Berechnungsoperatoren.

nach obennach unten 

JavaScript-Variable aus einem anderen Frame auslesen

Basierend auf einem Forums-Beitrag vom 15.08.1998 von:
E-Mail Christine Kuehnel, kuehnel@screenExa.net

Variable in einem anderen Framefenster können Sie mit

 parent.FrameName.dieVariable

auslesen und weiterverarbeiten. Dabei sollten Sie berücksichtigen, dass diese Variablen nicht immer zur Verfügung stehen können.

Beispiel:

<script language="JavaScript">
<!--

 if (parent.Frame1)
 if (parent.Frame1.meine_Variable) alert("meine_Variable hat den Wert " + meine_Variable);
 else alert("meine_Variable ist nicht bekannt");

//-->
</script>

Erläuterung:

Mit if (parent.Frame1) und if (parent.Frame1.meine_Variable) wird die Existenz des Frames "Frame1" und der Variable abgefragt. Diese Sicherheitsabfrage verhindert Fehlermeldungen, wenn die Variable nicht zur Verfügung steht. Anschließend wird diese weiterverarbeitet.

Hinweise:

Mit der gleichen Methode können Sie auch Variablen in anderen Frames verändern bzw. Funktionen ausführen.
Weiterführende Informationen finden Sie in der FAQ der Newsgroup de.comp.lang.javascript auf
deutschsprachige Seite http://irb-www.informatik.uni-dortmund.de/~sm/aw/js/faq/fenster/refer30.html.

nach obennach unten 

Sound mit JavaScript

Basierend auf einem Forums-Beitrag vom 28.09.1998 von:
E-Mail Marc, marc.ullrich@stud.tu-muenchen.de

Das Abspielen oder Stoppen eines Sounds mittels JavaScript wird durch das direkte Ansprechen von embed erzeugt. Der jeweilige Tag wird anhand seines Namens identifiziert.

 document.embeds.Name.play()
 document.embeds.Name.stop()

Verwenden Sie mehrere Sounds auf einer Seite, können Sie diese auch mit embeds[index] ansprechen.

Beispiel:

<html>
<head>
<title>Sounds</title>
<script language="JavaScript">
<!--

function an(name)
  { document.embeds[name].play();}

function aus(name)
  { document.embeds[name].stop();}

//-->
</script>
</head>

<body>

<embed name="ueber" src="a.wav" loop=false autostart=false mastersound hidden=true></embed>
<embed name="klick" src="b.mid" loop=false autostart=false mastersound hidden=true></embed>

<a href="datei.htm" onMouseOver="an('ueber')" onMouseOut="aus('ueber')">Link</a>

<a href="#" onClick="an('klick');return false">An</a>
<a href="#" onClick="aus('klick');return false">Aus</a>

</body>
</html>

Erläuterung:

Im Beispiel werden mittels onMouseOver, onMouseOut und onClick die Funktionen an() und aus() aufgerufen. Dabei wird jeweils der Name des embed-Tags übergeben.

Hinweis:

Beide Methoden können Sie sowohl im Netscape Navigator ab Version 3 als auch im MS Internet Explorer ab Version 4 verwenden. Beachten Sie aber, dass deren Wirksamkeit stets von den vom Benutzer installierten Plugins abhängt.

nach obennach unten 

Suchen und Ersetzen von Zeichenfolgen in Zeichenketten

Basierend auf Forums-Beiträgen vom 09.03.1999 von:
E-Mail Stefan Muenz, muenz@csi.com
E-Mail Fredy, visual_fred@hotmail.com

Manchmal ist es notwendig, Zeichenfolgen in Wörtern oder ganze Zeichenketten zu ersetzen. Sie können dazu Seite reguläre Ausdrücke verwenden. Diese werden jedoch erst von neueren Browsern verstanden. Durch Verwendung der Methode Seite substring() und der Eigenschaft length des Seite Stringobjektes ist das Suchen und Ersetzen ebenfalls zu realisieren.

Beispiel:

<html>
<head>
<title>Suchen und Ersetzen</title>
<script language="JavaScript">
<!--

function SucheErsetze(Text,Suche,Ersetze)
  {
   var Neutext = "";
   var i = 0;
   while(i < Text.length)
    {
     if(Text.substring(i,i + Suche.length) == Suche)
      {
        Neutext = Neutext + Ersetze;
        i = i + Suche.length - 1;
      }
      else
        Neutext = Neutext + Text.substring(i,i + 1);
     i++;
    }
   return Neutext;
  }

alert(SucheErsetze("schoen","oe","ö"));
alert(SucheErsetze("14,234",",","."));
alert(SucheErsetze("März","ä","ae"));

// -->
</script>
</head>
<body> </body>
</html>

Erläuterung:

Im Beispiel wird die Buchstabenfolge oe im Wort schoen durch das ö ersetzt. Mit dem Aufruf der Funktion SucheErsetze werden die Variablen Neutext und i initialisiert. Neutext dient zur Aufnahme der bereits durchsuchten Zeichenkette und i gibt die aktuelle Suchposition an. Anschließend wird eine Seite while-Schleife aufgerufen.
Innerhalb dieser Schleife wird schrittweise geprüft, ob sich die gesuchte Zeichenkette im Text befindet. Der Ausdruck Text.substring(i,i + Suche.length) beinhaltet eine Zeichenkette, die genauso lang ist wie der gesuchte Ausdruck. Stimmen beide Zeichenketten überein, wird der gesuchte Ausdruck ersetzt und an die Zeichenkette Neutext angehängt. Ist dies nicht der Fall, wird die extrahierte Zeichenkette unverändert an Neutext angefügt.
In beiden Fällen wird i dann um eins hochgezählt und die Suche wiederholt. Mit Beendigung der Suche erhält die Funktion den Rückgabewert Neutext. Diese Zeichenkette wird dann ausgegeben.

Lesen Sie hierzu auch die SELFHTML-Abschnitte Seite Funktion mit Rückgabewert und solche Funktion aufrufen und Seite substring().

nach obennach unten 

Wertübergabe an eine nachfolgende Seite

Basierend auf einem Forums-Beitrag vom 15.01.1999 von
E-Mail Michael N., mnikolai@gw.ford.com
und auf einem Forums-Beitrag vom 14.01.1999 von:
E-Mail Christine Kuehnel, kuehnel@screenExa.net

Ein immer wieder auftauchendes Problem ist die Übergabe von Werten an eine folgende Seite. Eine Möglichkeit ist die Verwendung des Objektes Seite location. Dieses Objekt ermöglicht ihnen den Zugriff auf die vollständige URL-Adresse der Seite.
Sie können mittels JavaScript an die URL der folgenden Seite Werte anhängen. Diese können von der aufgerufenen Seite ausgelesen und weiterverarbeitet werden.

Beispiel:

<html><head>
<title>Wertübergabe - Werte senden</title>
<script language="JavaScript">
<!--

function NaechsteSeite()
{
  var newURL         = "seite1.htm";
  var ParameterEins  = document.Formular.Eingabe1.value;
  var ParameterZwei  = document.Formular.Eingabe2.value;
  newURL = newURL + "#" + escape(ParameterEins);
  newURL = newURL + "#" + escape(ParameterZwei);
  location.href = newURL;
}

//-->
</script></head>
<body>

 <form name="Formular">
 Wert 1 eingeben: <input type="Text" name="Eingabe1"> <br>
 Wert 2 eingeben: <input type="Text" name="Eingabe2">
  <input type="button" name="Senden" value="absenden" onClick="NaechsteSeite();return true">
 </form>

</body></html>


<html><head>
<title>Wertübergabe - Werte empfangen</title>
<script language="JavaScript">
<!--

function WerteURLAus()
{
  var URLInhalt       = location.href;
  var ArrayVariable  = URLInhalt.split("#");
  document.Formular2.Ausgabe1.value=unescape(ArrayVariable[1]);
  document.Formular2.Ausgabe2.value=unescape(ArrayVariable[2]);
}

//-->
</script></head>

<body onLoad="WerteURLAus();return true;">

<form name="Formular2">
 Wert 1 empfangen: <input type="Text" name="Ausgabe1"> <br>
 Wert 2 empfangen: <input type="Text" name="Ausgabe2">
</form>

</body></html>

Erläuterung:

Im Beispiel wird der Inhalt eines Formulars auf die nachfolgende Seite übertragen. Nach der Eingabe der Formulardaten wird nach Betätigung des Absendebuttons die Funktion NaechsteSeite() aufgerufen. Innerhalb dieser Funktion werden die Werte des Formulars ausgelesen und an die in der Variablen newURL gespeicherte Seitenadresse angefügt. Das Zeichen # fungiert hier als Trennzeichen. Mittels escape() werden eventuell eingegebene Sonderzeichen in URL-konforme Zeichen konvertiert. Anschließend wird die nächste Seite mit der generierten URL-Adresse aufgerufen.

Die Funktion WerteURLAus() liest mittels der Methode Seite split() des Objektes string die einzelnen Werte aus und weist den Formularfeldern die gewünschten Werte zu. Durch unescape() werden konvertierte Sonderzeichen wieder zurückgesetzt.

Hinweise:

Das Beispiel können Sie im MS Internet Explorer ab der Version 4 und im Netscape Navigator ab der Version 3 einsetzen. Der MS Internet Explorer Version 3 interpretiert die Methode split() nicht, jedoch das angedachte Übergabeprinzip.
Für Online-Anwendungen und dem Netscape Navigator empfiehlt sich das ? als Trennzeichen, da dadurch Kollisionen mit eventuell vorhandenen Ankern vermieden werden. Einige Versionen des MS Internet Explorers interpretieren das Fragezeichen als Übergabezeichen in Offline-Anwendungen nicht oder nicht zufriedenstellend.
Sie können auch Werte von Variablen übergeben und neu setzen. Beachten Sie dabei, dass Sie nur Strings übergeben können. Dies bedeutet, dass Sie gegebenenfalls diese Variablen konvertieren müssen.
Eine weitere Möglichkeit, Werte an nachfolgende Seiten zu übergeben, wird im Artikel deutschsprachige Seite Javascript-Wertübergabe zwischen HTML-Dokumenten von Hatto von Hatzfeld auf SELFHTML aktuell erläutert.

nach obennach unten 

Zahlen mit führender Null und parseInt()

Basierend auf einem Forums-Beitrag vom 26.04.1999 von:
E-Mail Michael N., mnikolai@gw.ford.com
und auf einem Forums-Beitrag vom 07.04.1999 von
E-Mail Christine Kuehnel, kuene@screenExa.net
und auf einem Forums-Beitrag vom 02.09.1999 von
E-Mail Calocybe, calocybe@geocities.com

Insbesondere im Bereich der Datumsberechnung werden häufig Zahlen mit führender Null benutzt. Einfache Aufgaben wie alert(010*60) liefern scheinbar falsche Ergebnisse (hier 480 statt 600). Des Rätsels Lösung für dieses, auf den ersten Blick kaum nachvollziehbare Verhalten liegt im Ursprung der Sprache JavaScript begründet. Die Sprache JavaScript kommt aus dem Umfeld von UNIX und C. Unter UNIX ist aber das oktale Zahlensystem häufig die übliche Zahlendarstellung . Ein Zahl, die mit 0 beginnt, wird in JavaScript als Oktalzahl, ohne 0 als Dezimalzahl und beginnend mit 0x als Hexadezimalzahl interpretiert. Diese Besonderheit gilt auch für die Funktion Seite parseInt().

Die Funktion parseInt() besitzt jedoch einen optionalen Parameter radix. Dieser Parameter enthält die Basis des verwendeten Zahlensystems. Der Aufruf parseInt(string,radix) ermittelt aus dem String, der eine Zahl eines anderen Zahlensystems enthält, die dazugehörige Dezimalzahl. Die Funktion parseInt() kann damit gleichzeitig als Umrechner von Zahlen anderer Zahlensysteme in das dezimale Zahlensystem verwendet werden. So ergibt z.B. der Aufruf parseInt("11111",2) die Zahl 31.

Beispiele:

<html><head><title>Führende Null und JavaScript</title></head>
<body>
<script language="JavaScript">
<!--

document.writeln('parseInt("022",10) ergibt: '  + parseInt("022",10)  + '<br>');
document.writeln('parseInt("22") ergibt: '      + parseInt("22")      + '<br>');
document.writeln('parseInt("022",8) ergibt: '   + parseInt("022",8)   + '<br>');
document.writeln('parseInt("022") ergibt: '     + parseInt("022")     + '<br>');
document.writeln('parseInt("0x22") ergibt: '    + parseInt("0x22")    + '<br>');
document.writeln('parseInt("022",16) ergibt: '  + parseInt("022",16)  + '<br>');
document.writeln('parseInt("022",3) ergibt: '   + parseInt("022",3)   + '<br>');
document.writeln('parseInt("022",5) ergibt: '   + parseInt("022",5)   + '<br>');
document.writeln('parseInt("11111",2) ergibt: ' + parseInt("11111",2) + '<br>');
document.writeln('parseInt("11211",2) ergibt: ' + parseInt("11211",2) + '<br>');

//-->
</script>
</body></html>

Hinweis:

Das dezimale Zahlensystem kennt die Ziffern 0 bis 9, das oktale Zahlensystem 0 bis 7 und das hexadezimale System die Ziffern 0 bis 9 und A (=10), B (=11), C (=12), D (=13), E (=14) und F (=15).
Beachten Sie: befindet sich eine Ziffer im String, die im angegebenen Zahlenbereich unbekannt ist, wird der String nur bis zu dieser Ziffer interpretiert.

nach oben
weiter:Weiter Seite Laufzeitverhalten
zurück:Zurück Seite CSS - Seitenlayouts mit positionierten Bereichen
 

© 2000 Seite das Redaktionsteam