SELFHTML/Navigationshilfen HTML/XHTML Multimedia |
Unter "Objekt" wird hier jede Art von Datei oder Datenquelle verstanden, die sich außerhalb einer HTML-Datei befindet und in diese HTML-Datei eingebunden werden soll. Es kann sich um eine Datendatei handeln, also etwa um eine Excel-Tabelle, eine AutoCad-Zeichnung, eine Midi-Musikdatei, ein Flash-Movie, eine Streaming-Quelle für Rundfunkübertragung und vieles andere mehr. Es kann sich aber auch um eine vom Web-Browser ausführbare Datei handeln, also um ein Programm. Das können zum Beispiel Java-Applets oder ActiveX-Controls sein.
Damit nicht für jede neue Form der Einbindung anderer Ressourcen ein neues HTML-Element benötigt wird, soll ein einziges, mächtiges HTML-Element für alle Multimedia- und Fremdprogrammreferenzen genügen: das object
-Element. Dieses Element kann zwar nicht das Problem lösen, wie eine beliebige Datei beim Anwender angezeigt werden kann, aber es bietet zumindest eine einheitliche Syntax und trägt dadurch zur Vereinfachung von HTML bei.
Das object
-Element wird jedoch immer noch nicht vollständig von den Web-Browsern unterstützt. Das liegt zum Teil allerdings auch an der Vielzahl der proprietären Multimediaformate und ihren unterschiedlichen Schnittstellen. Das object
-Element ist jedoch so ausgelegt, dass es möglichst flexibel auf alle denkbaren Anforderungen reagieren kann und dem Browser genügend Information liefert, um mit der ausführenden Anwendung zu kommunizieren und sie in sein Anzeigefenster einzubetten.
Objekte sind aus HTML-Sicht Inline-Elemente. In der "Strict"-Variante von HTML müssen solche Elemente innerhalb von Block-Elementen vorkommen, etwa in einem Textabsatz oder einem allgemeinen Bereich oder auch einer Tabellenzelle.
Wenn Sie mit Versuchen, das object
-Element zu verwenden, keinen Erfolg haben, probieren Sie folgende herkömmlichen Möglichkeiten:
Multimedia einbinden (Netscape)
Java-Applets einbinden
Das object
-Element wird vom Internet Explorer seit Version 3.x und von Netscape seit Version 4.x unterstützt. Von einer ernstzunehmenden Implementierung kann bei diesen Produktversionen aber noch keine Rede sein. Deshalb ist bei den Beispielen auf dieser Seite in der Regel Internet Explorer 5.0 und Netscape 6.0 angegeben. Aber auch das bedeutet noch lange nicht, dass mit diesen Browsern alles reibungslos funktioniert.
Binden Sie Multimedia-Dateien im Normalfall nicht kommentarlos in Ihre Web-Seiten ein, sondern weisen Sie den Anwender darauf hin, um welche Art von Daten es sich handelt, und unter welchen Voraussetzungen eine korrekte Anzeige möglich ist.
Wenn Sie große Dateien einbetten, weisen Sie den Anwender im umgebenden Text auf die Größe der Datei hin.
Sie können eine beliebige Datendatei als Objekt in eine HTML-Datei einbinden, also z.B. ein Video, eine Konstruktionszeichnung, eine als fertige Datei vorliegende 3D-Welt, eine Musikdatei oder dergleichen. Auch einfache Textdateien und andere HTML-Dateien können Sie auf diese Weise einbinden. Ein Web-Browser kann solche Dateien anzeigen, wenn er entweder selber in der Lage ist, das Dateiformat anzuzeigen, oder wenn der Anwender ein entsprechendes Plugin installiert hat. Wenn das Plugin installiert ist, kann der Web-Browser die Datei so in seinem Anzeigefenster präsentieren, wie sie von dem Ursprungsprogramm erstellt wurde. Bei Abspielvorgängen, etwa von Videos oder Sound, wird ein entsprechender Player angezeigt - je nachdem, wie das Plugin beschaffen ist.
Wenn dem Browser eine Verknüpfung zwischen dem Datentyp und einem Fremdprogramm bekannt ist, kann er das Fremdprogramm mit der betreffenden Datei starten. Ob die Daten dann jedoch innerhalb des Bereichs auf der Web-Seite angezeigt werden, der für das Objekt definiert ist, hängt davon ab, ob der Browser und das andere Programm entsprechende Kommunikationsmöglichkeiten, z.B. vom Betriebssystem bereitgestellte Kommunikationsschnittstellen, nutzen.
Anzeigebeispiel: So sieht's aus (Beispiel erfordert installierten SVG-Viewer und DOM-fähigen Browser, also mindestens Internet Explorer 5.x oder Netscape 6.x)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Text des Titels</title> </head> <body> <h1>Analoguhr als SVG-Grafik mit eingebettetem JavaScript</h1> <p><object data="uhr.svg" type="image/svg+xml" width="200" height="200"> Ihr Browser kann das Objekt leider nicht anzeigen! </object></p> </body> </html> |
Mit <object>
leiten Sie die Referenz auf die einzubindende Datei ein, mit </object>
wird das Element beendet. Das object
-Element hat keine Pflichtattribute. Je nachdem, was Sie damit einbinden, müssen Sie selbst herausfinden oder auf Herstellerhinweise achten, welche der nach HTML-Standard möglichen Attribute Sie angeben sollten oder müssen. Zwischen dem einleitenden <object>
-Tag und dem abschließenden </object>
-Tag kann "beliebiger" HTML-Quelltext notiert werden. Im obigen Beispiel ist einfach ein Text notiert, dass der Browser das Objekt nicht anzeigen kann. Ebensogut könnte an dieser Stelle auch eine alternative Grafik notiert werden oder ein alternativer Versuch, das Objekt einzubinden, beispielsweise nach der herkömmlichen Netscape-Syntax. Es ist sogar erlaubt, als Inhalt eines object
-Elements ein anderes object
-Element zu notieren, um damit beispielsweise ein alternatives Objekt in einem anderen Dateiformat einzubinden.
Um eine Datendatei einzubinden, ist das Attribut data=
vorgesehen. Damit referenzieren Sie die gewünschte Datei (data = Daten). Bei der Wertzuweisung an dieses Attribut gelten die Regeln zum Referenzieren in HTML. Wenn sich die Datei also beispielsweise im gleichen Verzeichnis wie die HTML-Datei befindet, dann genügt einfach die Angabe des Dateinamens - so wie im obigen Beispiel. Das Referenzieren mit relativen oder absoluten Pfadangaben ist jedoch ebenso möglich, z.B.:
<object data="verzeichnis/datei.xy">
<object data="../datei.xy">
<object data="../woanders/datei.xy">
Auch das Referenzieren von einem vollständigen URI ist möglich, z.B.:
<object data="http://www.tolles-projekt.de/datei.xy">
Zusätzlich können Sie den Mime-Type der Datei angeben. Bei Datendateien, die mit data=
referenziert werden, notieren Sie dazu das Attribut type=
- so wie im obigen Beispiel. Als Wert weisen Sie einen gültigen Mime-Type zu. Wenn Sie den Mime-Typ nicht kennen, lassen Sie die Angabe type=
weg. Wenn Sie den Mime-Type kennen und angeben, helfen Sie dem Web-Browser durch die Angabe, schneller zu reagieren.
Bei eingebundenen Objekten sollten Sie stets Angaben zu Breite und Höhe notieren. Mit dem Attribut width=
legen Sie die Breite in Pixel oder in Prozent in Bezug auf die verfügbare Breite fest, und mit height=
die Höhe.
Manche Daten, zum Beispiel Videos, haben eine Originalbreite und Originalhöhe. Um so ein Video optimal einzubinden, sollten Sie dessen genaue Breite und Höhe kennen und mit width=
und height=
beim Einbinden der Videodatei angeben.
Manche Plugins, zum Beispiel Sound-Player, haben eine bestimmte Größe. Wenn Sie die genaue Größe kennen, sollten Sie beim Einbinden von Sound-Dateien, die mit dem betreffenden Plugin wiedergegeben werden sollen, die genaue Höhe und Breite des Players angeben. So können Sie den Player vollständig und optimal innerhalb der Bildschirmanzeige der HTML-Datei platzieren. Die Größenangaben sind bei solchen Plugins normalerweise bei der Software dokumentiert.
Wenn Sie zunächst nicht wissen, wie viel Breite oder Höhe das Objekt benötigt, müssen Sie verschiedene Werte ausprobieren.
Mit den Angaben width="0"
und height="0"
können Sie die sichtbare Anzeige auch ganz unterdrücken. Das kann zum Beispiel bei Hintergrundmusik erwünscht sein.
Das object
-Element darf auch im Dateikopf einer HTML-Datei, also zwischen <head>
und </head>
notiert werden. Das ist dann sinnvoll, wenn die Datendatei nicht angezeigt werden soll, z.B. wenn einfach eine Hintergrundmusik abgespielt werden soll. In diesem Fall empfiehlt es sich, die Angaben width="0"
und height="0"
im einleitenden <object>
-Tag zu notieren. Bei Objekten, die im HTML-Dateikopf eingebunden werden, darf jedoch zwischen <object>
und </object>
kein alternativer Inhalt stehen, der visuelle Ausgaben erzeugt.
Das W3-Konsortium sieht im HTML-Standard auch die Möglichkeit vor, das object
-Element innerhalb eines Formulars zu notieren, um beispielsweise in visueller Interaktion mit dem Anwender Werte zu ermitteln, die dann beispielsweise in versteckten Formularfeldern gespeichert und zusammen mit den Formulardaten übertragen werden. Vorgaben, wie genau die Kommunikation zwischen Objekt und Formularelementen funktionieren soll, gehören jedoch nicht zur HTML-Spezifikation.
Diese Möglichkeit des object
-Elements ist vor allem für Grafiken vorgesehen, die nicht einem der Standardtypen GIF, JPEG oder PNG entsprechen, die üblicherweise mit dem <img>
-Tag eingebunden werden. Gedacht ist die Möglichkeit beispielsweise für vektorgrafische CAD-Zeichnungen oder andere Grafikformate, die Sie mit Hilfe des object
-Elements einbinden.
Anzeigebeispiel: So sieht's aus (Beispiel erfordert installierten Lurawave-Viewer)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Text des Titels</title> </head> <body> <map name="Verweise"> <area shape="poly" coords="1,90,129,81,202,275,,273,415,202,417,150,311,1,173" href="http://www.duesseldorf.de/"> </map> <h1>Eine Stadt am Rhein</h1> <p>Klicken Sie, falls Sie die Lurawave-Grafik sehen können, auf den Rhein. Falls nichts passiert, unterstützt der Browser zwar die Anzeige des Objekts, aber nicht das Feature verweis-sensitiver Grafiken für Objekte.</p> <p><object data="ddorf.lwf" type="image/x-wavelet" width="413" height="417" usemap="#Verweise"> Ihr Browser kann das Objekt leider nicht anzeigen! </object></p> </body> </html> |
Um eine verweis-sensitive Grafik als Objekt einzubinden, notieren Sie im einleitenden <object>
-Tag das Attribut usemap=
. Das restliche Verfahren ist dann das gleiche wie bei verweis-sensitiven Grafiken (siehe Beschreibung dort).
Java-Applets sind ausführbare Programme, deren Bildschirmausgaben ein Web-Browser innerhalb seines Anzeigefensters darstellen kann. Applets können z.B. bewegte Animationen (Tricksequenzen) enthalten, Echtzeitabläufe in bewegten Grafiken darstellen (Stichwort: Börsenticker), oder Interaktionen mit dem Anwender austauschen. So werden Java-Applets etwa häufig bei Online-Banking eingesetzt.
Java-Applets müssen in compilierter Form vorliegen, um bei der Referenzierung in einer HTML-Datei ausgeführt werden zu können. Normalerweise haben compilierte Java-Applets die Dateinamenerweiterung .class.
Anzeigebeispiel: So sieht's aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Text des Titels</title> </head> <body> <h1>Wagen Sie sich durchs Labyrinth!</h1> <p><object classid="java:zmaze3d.class" codetyte="application/java-vm" width="600" height="400"></object></p> </body> </html> |
Mit dem Attribut classid=
im einleitenden <object>
-Tag referenzieren Sie die Implementierung des JavaApplets (classid = class identifier = Klassenbezeichner). Erlaubt ist ein spezieller URI: Die Wertzuweisung besteht aus der festen Zeichenfolge java:
- gefolgt von dem Namen der .class-Datei (also der ausführbaren Applet-Datei). Im obigen Beispiel wird auf diese Weise die Datei zmaze3d.class in der Form classid="java:zmaze3d.class"
eingebunden.
Wenn sich die Applet-Datei in einem anderen Verzeichnis befindet als die HTML-Datei, in der sie referenziert wird, oder auf einem anderen Internet-Server, dann müssen Sie den Pfad bzw. die Adresse des Server-Rechners und das Verzeichnis angeben, wo sich die Programmdatei befindet (nur das Verzeichnis, nicht mehr den Namen der Programmdatei). Dazu verwenden Sie - ebenfalls im einleitenden <object>
-Tag - das Attribut codebase=
. Bei der Wertzuweisung an dieses Attribut gelten die Regeln zum Referenzieren in HTML. Die Angabe von codebase=
kann in einigen Fällen auch erforderlich sein, um Teile eines Java-Applets von einem bestimmten Internet-Server nachzuladen.
Ähnlich wie für Datendateien gibt es auch für ausführbare Programmdateien Mime-Typen. Bei Java-Applets sind die Angaben codetyte="application/java"
oder codetyte="application/java-vm"
gebräuchlich.
Zwischen <object>
und </object>
können Sie im Zusammenhang mit Java-Applets Aufrufparameter notieren. Viele Java-Applets erwarten einen oder mehrere solche Parameter beim Aufruf.
Anzeigebeispiel: So sieht's aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Text des Titels</title> </head> <body> <h1>Ein Lauftext mit Java</h1> <p><object classid="java:zticker.class" codetyte="application/java" width="600" height="60"> <param name="msg" value="Die Energie des Verstehens"> <param name="href" value="../../../index.htm"> <param name="speed" value="5"> <param name="bgco" value="255,255,255"> <param name="txtco" value="000,000,255"> <param name="hrefco" value="255,255,255"> </object></p> </body> </html> |
Jeder Parameter wird durch <param name= value=>
angegeben. Beim Attribut name=
geben Sie den Namen des Parameters an. Bei value=
geben Sie den gewünschten Wert des Parameters an, der dem Applet übergeben werden soll.
Bei Java-Applets, die aus mehreren class-Dateien bestehen, müssen Sie die Datei angeben, die den Programmstart enthält. Näheres dazu entnehmen Sie der Dokumentation, die solchen Java-Programmen beigefügt sein sollte. Auch die genauen Anweisungen zum Einbinden eines Java-Applets - z.B. zu erwarteten oder erlaubten Parametern - finden Sie normalerweise in der Dokumentation zu dem Java-Applet.
Beachten Sie auch die herkömmliche Methode zum Einbinden von Java-Applets.
ActiveX-Controls können ähnliche Aufgaben wahrnehmen wie Java-Applets. Jedoch sind sie stärker als Java-Applets in der Windows-Welt und der Welt von Microsoft verankert und werden nur vom Microsoft Internet Explorer interpretiert.
Anzeigebeispiel: So sieht's aus ( Quelle zum Beispieltext)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Text des Titels</title> </head> <body> <h1>Eine MIDI-Datei</h1> <object width="267" height="175" classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A"> <param name="filename" value="ritmo.mid"> </object> </body> </html> |
Mit dem Attribut classid=
referenzieren Sie die Implementierung des gewünschten ActiveX-Controls (classid = class identifier = Klassenbezeichner). Die Angabe besteht aus der festen Zeichenfolge CLSID:
- gefolgt von der Bezeichner-ID. Diese ID müssen Sie kennen. Im obigen Beispiel wird ein recht bekanntes ActiveX-Control referenziert, nämlich dasjenige, das unter Windows zum Abspielen von Multimedia-Dateien zuständig ist. Es bindet den Media-Player von Windows in den Bereich des definierten Objekts ein. Mit classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A"
binden Sie also ein ActiveX-Control ein, das es erlaubt, Sound- und Videodateien aller bekannten Formate wie WAV, AU, MID, MP3, AVI, MPEG usw. abzuspielen.
Mit dem Attribut codebase=
können Sie die Internet-Adresse angeben, von der das ActiveX-Control geladen werden kann, falls der WWW-Browser es auf dem Rechner des Anwenders nicht findet (ActiveX-Controls werden nach dem Laden normalerweise in einem Windows-Unterverzeichnis abgespeichert - Dateien *.ocx - und beim erneuten Aufruf auch wieder von dort geladen.
ActiveX-Controls können genauso wie Java-Applets Parameter übergeben bekommen. Diese werden auch genauso notiert, nämlich mit <param name= value=>
zwischen <object>
und </object>
. Das ActiveX-Control im obigen Beispiel erwartet einen Parameter namens filename
, der bei value=
die Angabe des gewünschten Dateinamens der abzuspielenden Datei erwartet.
Das Einbinden von Flash (Dateien *.swf) funktioniert ähnlich wie das Einbinden von Java-Applets oder ActiveX-Controls.
Anzeigebeispiel: So sieht's aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Text des Titels</title> </head> <body> <h1>Das gute alte Wurm-Spiel in Flash!</h1> <p>Erst auf "Start" klicken. Dann Leertaste drücken. Mit dem Wurm die angezeigte Zahl ansteuern und treffen. Außenränder und Hindernisse nicht berühren!</p> <object classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" width="600" height="400"> <param name="movie" VALUE="nibbles.swf"> <param name="quality" value="high"> <param name="scale" value="exactfit"> <param name="menu" value="true"> <param name="bgcolor" value="#000040"> </object> </body> </html> |
Mit dem Attribut classid=
referenzieren Sie die gewünschte Implementierung (classid = class identifier = Klassenbezeichner). Die Angabe besteht aus der festen Zeichenfolge CLSID:
- gefolgt von der Bezeichner-ID. Für Flash müssen Sie stets classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000"
notieren.
Mit dem Attribut codebase=
können Sie die Internet-Adresse angeben, von der das Flash-Plugin geladen werden kann, falls es beim Anwender nicht vorhanden ist. Im obigen Beispiel ist die Adresse für Flash 4 angegeben. Wenn Sie Flash-Anwendungen einsetzen, die mit Flash 5 erstellt wurden, geben Sie codebase="http://active.macromedia.com/flash5/cabs/
swflash.cab#version=5,0,0,0"
an.
Flash-Anwendungen können genauso wie Java-Applets Parameter übergeben bekommen. Diese werden auch genauso notiert, nämlich mit <param name= value=>
zwischen <object>
und </object>
. Der wichtigste Parameter ist der namens movie
, bei dem Sie bei value
die gewünschte swf-Datei angeben.
In der Praxis ist es oft besser, zusätzlich zu dem object
-Element auch noch die herkömmliche Netscape-Syntax mit anzugeben. So kommen auch ältere Netscape-Browser damit zurecht, sofern ein Flash-Plugin installiert ist. Der Nachteil dabei ist jedoch, dass Sie ein HTML-Element verwenden müssen, das nicht zum HTML-Standard gehört. Sie erzeugen damit also ungültiges HTML. Für das obige Beispiel lautet dann der Quelltext:
<object classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" width="600" height="400"> <param name="movie" VALUE="nibbles.swf"> <param name="quality" value="high"> <param name="scale" value="exactfit"> <param name="menu" value="true"> <param name="bgcolor" value="#000040"> <embed src="nibbles.swf" quality="high" scale="exactfit" menu="false" bgcolor="#000000" width="600" height="400" swLiveConnect="false" type="application/x-shockwave-flash" pluginspage ="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed> </object> |
Sie können festlegen, dass der Browser einen Rahmen um ein eingebundenes Objekt zeichnet. Das kann zur Verdeutlichung beitragen, dass es sich um ein eingebettetes Objekt handelt. Das Attribut dafür ist jedoch als deprecated gekennzeichnet und soll künftig aus dem HTML-Standard entfallen, da es durch die CSS-Eigenschaft border ersetzbar ist.
Anzeigebeispiel: So sieht's aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Rahmen um Objekte</title> </head> <body> <h1>Eine eingerahmte eingebundene Text-Datei!</h1> <p><object data="html.txt" type="text/plain" width="300" height="400" border="2"> Ihr Browser kann das Objekt leider nicht anzeigen! </object></p> </body> </html> |
Durch das Attribut border=
innerhalb des einleitenden <object>
-Tags wird ein Rahmen um das Objekt definiert (border = Rand). Die Angabe erfolgt in Pixeln und bedeutet die Rahmendicke.
Das obige Beispiel zeigt, wie Sie einfache Textdateien "in a box" einbinden können - ebenso geht es mit HTML-Dateien und dem Mime-Type text/html
. Der Internet Explorer zeigt die Dateien an, allerdings keinen Rahmen. Netscape kann die Textdatei nicht als Objekt anzeigen.
Sie können einen Namen für ein Objekt vergeben.
<object name="MIDI_Datei" width="267" height="175" classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A"> <param name="filename" value="ritmo.mid"> </object> |
Mit name=
vergeben Sie einen Namen für das Objekt. Der Name sollte nicht zu lang sein und darf keine Leerzeichen, Sonderzeichen oder deutsche Umlaute enthalten. Das erste Zeichen muss ein Buchstabe sein. Danach sind auch Ziffern erlaubt. Benutzen Sie als Sonderzeichen im Namen höchstens den Unterstrich (_
), den Bindestrich (-
), den Doppelpunkt (:
) oder den Punkt (.
). Im Hinblick auf JavaScript darf der Name sogar nur Buchstaben, Ziffern und den Unterstrich (_
) enthalten. Groß- und Kleinschreibung werden bei Sprachen wie JavaScript ebenfalls unterschieden.
In der HTML-Referenz finden Sie Angaben darüber, wo das object
-Element vorkommen darf, welche Attribute es haben kann und was bei den einzelnen Attributen zu beachten ist:
Element-Referenz für Objektreferenzen (<object> ... </object>
)
Attribut-Referenz für Objektreferenzen (<object> ... </object>
)
Eigenschaften von Objekten | |
Frames als Mittel für Seitenlayouts | |
SELFHTML/Navigationshilfen HTML/XHTML Multimedia |
© 2001 selfhtml@teamone.de