Syntax in Befehlen und Aufrufen

homosuiiuris

Grünschnabel
---

Liebe Anwesende, mich plagen einige grundsätzliche Fragen.

1)
Wann muss ich zum Aufrufen eines Skriptes
"javascript:ereignis()" schreiben
und wann reicht lediglich "ereignis()"?
Nach meiner Erfahrung (probieren) funktionieren sowohl
onMouseOver="javascript:bewegen(0,-1)"
als ebenso
onMouseOver="bewegen(0,-1)"
beide gleichermaßen gut.

Bei einem href
<a onFocus="this.blur()" href="galerie02()">
<img src="thumb02.jpg" border="0" width="300" height="300">
</a>
wird der Befehl NICHT ohne den Zusatz "javascript:galerie02" ausgeführt,
wohl aber
<img src="thumb02.jpg" border="0" width="300" height="300" onClick="galerie02()">
mittels onClick.

2)
Gehört das Semikolon ans Ende jeden Skriptaufrufes
onLoad="ladebalken();"
oder nur zwischen zwei resp mehrere Scriptaufrufe
onLoad="ladebalken(); setTimeout('ereignis()',25000);"
alls Trennzeichen?

3)
Gleiche Situation weiter oben in der HTML-Datei:
bei folgendem Skript

<script language="javascript" type="text/javascript">
<!--
function galerie91()
{
parent.obenlinks.location.replace("platzhalter.html");
parent.parent.unten.untenlinks.location.replace("../galerie91/galerie91.html");
}
//-->
</script>

steht das Semikolon meiner Vermutung nach ebenfalls,
um zwei mit einem Aufruf auszuführende Befehle zu trennen.

Müsste in folgendem Skript

<script language="javascript" type="text/javascript">
<!--
function exponat91c()
{
parent.parent.oben.obenlinks.location.replace("exponat91c.html")
}
//-->
</script>

am Ende des Befehls ebenfalls ein Semikolon stehen
oder ist es bei lediglich einem Befehl optional bzw falsch
resp erkennt der Browser an der Spitzklammer das Ende des Befehls?

4)
Wann ist dass Anführungszeichen und wann der Apostroph zu verwenden
bzw besteht zwischen beiden eine Art Rangordnung?
Diese Frage resultiert aus meiner Beobachtung,
dass (zumindest manchmal) beides arbeitet.


Mehr konkrete Beispiele habe ich im Augenblick nicht parat; über
Hin- oder auch Verweise würde ich mich sehr freuen.
Der Suchbegriff SEMIKOLON hat mich wohl schon manches finden lassen, aber
gelegentlich begreife ich besser, wenn es jemand kurz und knackig vermittelt.

Mit Sicherheit weiß ich nicht, ob es Browser-bedingte Unterschiede gibt,
aber die verschiedenen Möglichkeiten habe ich
mit dem IE, in OPERA und im FIREFOX durchprobiert.
Zu einem MAC gewährt das Schicksal mir derzeit leider keinen Zugang.


Soweit. Vielleicht gibt es einige aufschlussreiche Antworten.
Vielen Dank dafür im Voraus - Eric.


---
 
Chronologische Antwortversuche:
  1. Das Schema javascript: ist nur bei Attributen erforderlich, welche als Wert eine URI fordert, wie z.?B. das href-Attribut.
  2. Das Semikolon ist nur bei einer Aufzählung von Ausdrücken zwingend erforderlich.
  3. Auch hier ist das Semikolon nur bei einer Aufzählung von mehreren Ausdrücken innerhalb einer Zeile zwingend erforderlich.
Zu Punkt vier fällt mir persönlich kein Unterschied ein. Möglicherweise weiß jemand anderes mehr darüber.


Folgendes wäre in diesem Zusammenhang sicherlich noch von Interesse:
 
Das mit den Anführungszeichen und Apostroph ist nur ne Sache der Bequemlichkeit. Beispiel:

document.write('Das ist aber eine "coole" Seite, oder nicht?');

Das würde funktionieren. Würdest du aber Anführungszeichen statt Apostroph benutzen, käme ein Fehler. Ein Lösuung wäre folgende:

document.write("Das ist aber eine \"cool\" Seite, oder nicht?");

Verstanden?

HUBBLE***
 
zu 1.)
onMouseover, onAbort, onBlur usw. sind Event-Handler. Event-Handler sind die Schnittstelle zwischen Java-Script und dem HTML-Document und dürfen als Attribute in die HTML-Tags eingesetzt werden. Dabei muss die HTML-typische Schreibweise für Attribute gewahrt werden, z.B.
Code:
<a href="datei.htm" onMouseover="JavaScript_Anweisungen"> Verweistext </a>
Nur wenn du als Verweisziel beispielsweise eine JavaScript-Funktion über das Attribut href="..." aufrufen willst, musst du die spezielle Syntax
Code:
<a href="javascript:funktionsName()" onMouseover="JavaScript_Anweisungen"> Verweistext </a>
verwenden.

zu 3.)
In deinem Beispiel
{
parent.parent.oben.obenlinks.location.replace("exponat91c.html")
}
ist das Semikolon nach der Anweisung nicht zwingend erforderlich, du kannst dort aber eins (oder auch mehrere) einsetzen, da leere Anweisungen in JavaScript erlaubt sind.

zu 4)

Eigentlich ist es egal, ob du doppelte ".." oder einfache Anführungszeichen '..' verwendest, du musst sie nur konsequent paarweise einsetzen.
Wenn du allerdings bei einem Event-Handler als Übergabewert ein Zeichen oder ein String einsetzen musst, dann müssen Anführungszeichen verschachtelt werden:
Code:
onclick="show('cat1')"
Hier muss man unterschiedliche Anführungszeichen benutzen, um Parserfehler zu vermeiden.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück