Hartmut Schöpke: JavaScript1.1/1.2/...-Aufrufe in Event-Handlern

Hallo,

Ich habe das zwar noch nicht ausprobiert, aber was
passiert eigentlich, wenn ich im <HEAD> eingeschränkt
auf JavaScript1.1/1.2/... eine Funktion definiere,
und den Aufruf der Funktion im Event-Handler mache,
der schon unter JavaScript (1.0) funktioniert
(natürlich, wenn ich einen Browser benutze der dann
auch nur eine kleinere Version versteht)?
Gibt es dann eine Fehlermeldung und wenn ja, wie verhindere ich die?

Mit bestem Dank

Hartmut

  1. Hallo Hartmut,

    Gibt es dann eine Fehlermeldung und wenn ja, wie verhindere ich die?

    Ich habe es jetzt nicht ausprobiert, aber eigentlich sollte es eine Fehlermeldung geben, dass die aufgerufene Funktion nicht existiert.
    Verhindern kannst Du das zum Beispiel dadurch, dass Du den JavaScript-Bereich ohne Versionsnummer auszeichnest und stattdessen innerhalb der Funktion durch Browser-Abfragen oder Abfragen danach, ob ein Objekt existiert, Code kontrolliert ausfuehrst. <script language="JavaScript1.2"> macht nur Sinn, wenn man verhindern will, das aeltere Browser von dem Script ueberhaupt etwas mitkriegen.

    Viele Gruesse
      Stefan Muenz

    1. Hallo Ihr,

      Gibt es dann eine Fehlermeldung und wenn ja, wie verhindere ich die?
      Ich habe es jetzt nicht ausprobiert, aber eigentlich sollte es eine Fehlermeldung geben, dass die aufgerufene Funktion nicht existiert.

      Genau das passiert auch. Script-Block unter Versionsangabe 1.2 wird vom Browser total ignoriert, fuer diesen Tag ist er blind, also kennt er die Funktion nicht.

      Verhindern kannst Du das zum Beispiel dadurch, dass Du den JavaScript-Bereich ohne Versionsnummer auszeichnest und stattdessen innerhalb der Funktion durch Browser-Abfragen oder Abfragen danach, ob ein Objekt existiert, Code kontrolliert ausfuehrst.

      Ja, das ist eine Methode, in den meisten Faellen auch die beste.
      Nur der Vollstaendigkeit halber noch eine zweite.
      Das ginge auch:
         <script language="JavaScript">
         function mach_was()
         {}
        </script>
        <script language="JavaScript1.2">
        function mach_was()
        {
        // und die macht tatsaechlich was
        }
        </script>
      Reihenfolge einhalten.
      Browser, die kein JS1.2 kennen, arbeiten damit die erste Funktion ab, in der nichts passiert. Die andere sehen sie gar nicht.
      Die anderen "vergessen" die erste Funktion, wenn sie auf die zweite mit demselben Namen treffen, benutzen bei Aufruf diese.

      <script language="JavaScript1.2"> macht nur Sinn, wenn man verhindern will, das aeltere Browser von dem Script ueberhaupt etwas mitkriegen.

      Ja.
      Zusaetzlich kann man sich das, was ich oben geschrieben habe, zunutze machen, wenn man vielleicht bei aelteren und neueren Browser etwas tun will, aber eben was verschiedenes.

      Noch ein kleiner Hinweis, dann hoere ich auf :-)
      Es existieren so ein paar Browser-Exoten-Versionen, die haben Probleme mit der Versionsangabe, arbeiten die Scripts unter 1.1 bzw. 1.2 ab, obwohl sie "keine Ahnung" davon haben. Ein Teil  von MSIE3.02 ist da bzgl. 1.1 unangenehm aufgefallen.

      Christine

    2. Hallo,

      vielen dank erstmal an Stefan und Christine. Ich muss
      sagen dies ist ein wirklich sehr gutes Forum. Schnell
      und aktuell, und Du als Betreiber bleibst auch nicht
      aussen vor. Weiter so.

      Verhindern kannst Du das zum Beispiel dadurch, dass
      Du den JavaScript-Bereich ohne Versionsnummer
      auszeichnest und stattdessen innerhalb der Funktion
      durch Browser-Abfragen oder Abfragen danach, ob ein
      Objekt existiert, Code kontrolliert ausfuehrst.
      <script language="JavaScript1.2"> macht nur Sinn,
      wenn man verhindern will, das aeltere Browser von
      dem Script ueberhaupt etwas mitkriegen.

      Schon klar, aber mir geht es hier eher um die
      Moeglichkeit das Script in eine .js-Datei auszulagern,
      was ja erst ab JavaScript1.1 funktioniert
      (laut <../../tea.htm#6>). Wie kann ich da verhindern,
      dass ein Fehler auftritt beim Funktionsaufruf in einem
      Event-Handler ?
      Entschuldigt, dass ich dies in meiner ersten Frage
      nur allgemein formuliert hatte.

      Hartmut Schöpke