JavaScript = plattformunabhängig?

tempomat

Mitglied
Hi Leute,

einige Webseiten, die JavaScript verwenden, haben oftmals als Info daneben stehen, dass es nur mit dem Internet Explorer funktioniert.

Meine Fragen:
- Wieso funktioniert es nicht zum Beispiel mit Firefox, obwohl dort JavaScript aktiviert ist?

- Wie kann man es trotzdem hinkriegen, damit es auch mit Firefox läuft? Kommt es da auf einige bestimmte Befehle an?

- Bei Java gibt es ja zum Beispiel eine Java - API, wo man durch all die Klassen rumstöbern kann. Gibt es auch so etwas für JavaScript?
 
Moin!
die Browser haben unterschiedliche Interpreter. IExplorer hat beispielsweise den JSCript-Interpreter, Mozilla nutzt glaube ich Spidermonkey. Daher wird halt nicht jeder Befehl von allen Browsern untersützt, bzw. gleich ausgefuehrt.

Befehlsreferenz:
http://www.w3schools.com/jsref/default.asp

*gruessle*
MeinerEiner
 
Hi, danke für deine schnelle Antwort. :)

Jedoch habe ich noch einige Fragen:

- Die beiden Interpreter bieten doch aber all die gleichen Befehle an, oder?
* Wenn ja, dann könnte man rein theoretisch eine Seite so umschreiben, dass es auch auf dem Firefox läuft, oder?

- Sagen wir mal ich programmiere einen neuen Befehl, den die beiden Interpreter nicht haben.
* Wie kann ich es dann denen anbieten, die meine Seite besuchen?
* Sind das solche Fälle, wie beispielsweise beim Internet Explorer, wo ich ein ActiveX - Steuerelement erlaube. Das gleiche wie beim Firefox, wo ich manchmal ein Plugin installieren muss.
 
Hi, danke für deine schnelle Antwort. :)

Jedoch habe ich noch einige Fragen:

- Die beiden Interpreter bieten doch aber all die gleichen Befehle an, oder?
* Wenn ja, dann könnte man rein theoretisch eine Seite so umschreiben, dass es auch auf dem Firefox läuft, oder?

Nö.. schau dir mal diese Seite an:
http://de.selfhtml.org/javascript/objekte/index.htm

auch eine recht gute Referenzseite, die Überblick gibt, welche Befehle von welchen Browsern untersützt werden. Willst du sicherstellen, dass deine Seite wirklich korrekt ausgefuehrt wird, musst du eventuell Programmcode fuer unterschiedliche Browser anbieten.

(Siehe dazu :http://de.selfhtml.org/javascript/objekte/navigator.htm )

- Sagen wir mal ich programmiere einen neuen Befehl, den die beiden Interpreter nicht haben.

Hä?
Wenn du "einen neuen Befehl erstellst" und auf deiner Webseite veröffentlichst, wird das von den Browsern als das aufgefasst was es ist.. nämlich Blödsinn. Du kannst logischerweise nur Befehle verwenden, die auch existieren...


*gruessle*
MeinerEiner
 
Du kannst schon eigene Befehle kreieren....in JS spricht man da eher von Methoden, oder auch Funktionen.
Was allerdings innerhalb dieses "Befehles" vor sich geht, muss für JS nachvollziehbar sein, also die verwendeten Methoden/Objekte müssen bekannt sein.

Beispiel:
Code:
<script type="text/javascript">
window.MsgBox=function(str)
{
  alert(str);
}
  
window.MsgBox('Hallo Welt');
</script>

Was die inkompatiblen Seiten anbelangt, das ist eher ein Problem der Autoren als der Technik. Alle gängigen Browser kennen das DOM, somit ist es im Groben kein Problem kompatibel zu arbeiten. In den Feinheiten gibt es zwar noch Unterschiede, aber nur in den seltensten Fällen sind diese so prägnant, dass sich keine Lösung finden lässt.

Und das ist schon seit vielen Jahren so....spätestens seit IE5,Netscape6 und Opera5....inkompatible Seiten sind somit vorrangig ein Produkt unwilliger Autoren.
 
Der Internet-Explorer unterstützt außerdem als einziger Browser noch ActiveX, also einen ganzen Wust an Dingen, die andere Browser nicht unterstützen.

Du kannst zusätzlich übrigens bestehende Objekten mit der prototype-Eigentschaft um Methoden und Unterobjekte erweitern.
 

Neue Beiträge

Zurück