SELFHTML Forums-Auslese JavaScript


Forums-Auslese
Variablen, Funktionen, Objekte, Kontrollstrukturen

Diese Seite ist ein Dokument mit Informationstext

 Zweidimensionale Arrays erzeugen
 Der Unterschied zwischen eval() und einem simplen + bei Strings
 Bestimmung einzelner Ziffern einer Zahl
 Überprüfung, ob eine Eingabe nur zulässige Zeichen enthält
 Zufallszahlen aus dem Datum generieren
 JavaScript-Variable aus einem anderen Frame auslesen
 Sound mit JavaScript

 

Zweidimensionale Arrays erzeugen

Basierend auf einem Forums-Beitrag vom 09.09.1998 von:
 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  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   http://developer.netscape.com/docs/manuals/communicator/jsref/core1.htm nachgelesen werden.

 

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

Basierend auf einem Forums-Beitrag vom 22.09.1998 von:
 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 muß 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 koennen.

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.

 

Bestimmung einzelner Ziffern einer Zahl

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

Beim Extrahieren einer einzelnen Ziffer aus einer Zahl mittels substring erhalten Sie eine Fehlermeldung. Dies liegt daran, daß der Browser die Zahl als Zahl und nicht als String behandelt. Möchten Sie trotzem 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>

 

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

Basierend auf einem Forums-Beitrag vom 16.09.1998 von:
 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  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.

 

Zufallszahlen aus dem Datum generieren

Basierend auf einem Forums-Beitrag vom 21.10.1998 von:
 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 Zufallszahhl ausgegeben. Lesen Sie hierzu auch die SELFHTML-Abschnitte  getTime() und  Berechnungsoperatoren.

 

JavaScript-Variable aus einem anderen Frame auslesen

Basierend auf einem Forums-Beitrag vom 15.08.1998 von:
 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, daß 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
  http://irb-www.informatik.uni-dortmund.de/~sm/aw/js/faq/fenster/refer30.html.

 

Sound mit JavaScript

Basierend auf einem Forums-Beitrag vom 28.09.1998 von:
 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 Naviagator ab Version 3 als auch im MS Internet Explorer ab Version 4 verwenden. Beachten Sie aber, daß deren Wirksamkeit stets von den vom Benutzer installierten Plugins abhängt.

weiter: Laufzeitverhalten
zurück: CSS - Seitenlayouts mit positionierten Bereichen
 

SELFHTML Forums-Auslese JavaScript

© 1999  das Redaktionsteam