Benny: HTML Tag teilweise dynamisch erzeugen?

Hi,

ich habe folgendes Problem. Ich möchte einen Windows Media Player in meine Page einbauen und ihn dann per javascript ansteuern. Dies soll sowohl mit dem IE als auch mit dem Firefox möglich sein. Ich habe auf der Microsoft seite eine Lösung gefunden um dies zu tun. Allerdings funktioniert es nur bedingt. Ich habe es dann selbst so hinbekommen, das es funktioniert allerdings benötige ich bei jedem Browser einen anderen Tag.

De Tag schaut grundsätzlich so aus:

  
<object id="VIDEO" height="312" width="512"  
	type="application/x-ms-wmp"  
	classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"  
	standby="Loading Microsoft? Windows? Media Player components...">  
	<param name="ShowControls" value="0">  
	<param name="ShowTracker" value="1">  
	<param name="url" value="${videoBean.url}">  
	<param name="AutoRewind" value="0">  
	<param name="ShowPositionControls" value="1">  
	<param name="currentPosition" value="${videoBean.startPosition}">  
	<param name="ClickToPlay" value="0">  
	<param name="EnableContextMenu" value="1">  
	<param name="AnimationAtStart" value="1">  
	<param name="PlayCount" value="0">  
	<param name="ShowStatusBar" value="1">  
	<param name="ShowAudioControls" value="1">  
	<param name="StretchToFit" value="false">  
	<param name="AutoStart" value="1">  
	<param name="uiMode" value="full">  
</object>  

Damit geht es im IE wunderbar. Um es nun mit dem Firefox nutzen zu können darf der Eintrag der classid nicht enthalten sein. Kann ich innerhalb des object Tags eine Art IF-Abfrage machen ob es sich um den IE oder FF handelt und dementsprechend die classid setzen oder nicht?

Danke im Voraus
LG Benny

  1. @@Benny:

    nuqneH

    Kann ich innerhalb des object Tags eine Art IF-Abfrage machen ob es sich um den IE oder FF handelt und dementsprechend die classid setzen oder nicht?

    Wenn du sowieso auf JavaScript angewiesen bist, könntest du @classid doch damit setzen – per conditional comment nur für IE:

    <object  id="VIDEO" height="312" width="512"  
            type="application/x-ms-wmp"  
            standby="Loading Microsoft? Windows? Media Player components...">  
      <!-- parameters -->  
    </object>  
    <!--[if IE]><script type="text/javascript">  
    [code lang=javascript]document.getElementById("VIDEO").classid = "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6";
    

    </script><![endif]-->[/code]

    Oder per conditional compilation:

    <script type="text/javascript">  
    [code lang=javascript]/*@cc_on document.getElementById("VIDEO").classid = "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"; @*/
    

    </script>[/code]

    (Ungetestet, vielleicht muss es auch 'classId' heißen?)

    Besser ist es wohl, das <object>-Tag je nach Browser mit bzw. ohne @classid zu generieren:

    <!--[if !IE]><!--><object  id="VIDEO" height="312" width="512"  
            type="application/x-ms-wmp"  
            standby="Loading Microsoft? Windows? Media Player components..."><!--<![endif]-->  
    <!--[if IE]><object  id="VIDEO" height="312" width="512"  
            type="application/x-ms-wmp"  
            classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"  
            standby="Loading Microsoft? Windows? Media Player components..."><![endif]-->
    

    (Nur @classid auszukommentieren geht nicht; Kommentare innerhalb eines Tags sind nicht erlaubt.)

    Und dass es außer IE und Firefox noch andere Browser gibt, das weißt du?

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Hi,

      vielen Dank für die schnelle Antwort. Ich werde es gleich mal umsetzten. Das es noch andere Browser gibt ist mir natürlich bekannt :P Ich bin momentan Praktikuant und arbeite an diesem Projekt. Anforderung ist lediglich FF und IE. Daher brauch ich mir um die anderen Browser keine Gedanken zu machen.

      LG und danke nochmal