Q77: document.getElementById(...) / Probleme mit dem IE

Hallo

Ich habe Probleme mit dem IE ein eingebettetes Flash Video anzeigen zu lassen. Das Video sollte eigentlich erscheinen wenn man im Thread auf einen Button klickt.
Beim IE8 kommt folgende Fehlermeldung nachdem man auf den Button klickt :

Details zum Fehler auf der Webseite  
  
Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET CLR 1.1.4322)  
Zeitstempel: Sun, 13 Mar 2011 14:56:30 UTC  
  
  
Meldung: 'document.getElementById(...)' ist Null oder kein Objekt  
Zeile: 387  
Zeichen: 5  
Code: 0  
URI: 

Beim IE9 kommt keiner Fehlermeldung. Dafür ist das Flash Video einfach nur weiß (es wird nicht geladen). Beim FF funktioniert aber alles.
Wie kann ich das beheben?
Hier ein auschnitt aus der overall_header.html Datei:

   </script>  
  
    <link href="{T_THEME_PATH}/web/style.css" rel="stylesheet" type="text/css" media="screen, projection" />  
  
    <script type="text/javascript">  
    // <![CDATA[  
        function toggle_visibility(id) {  
           var e = document.getElementById(id);  
           if(e.style.display == 'block')  
              e.style.display = 'none';  
           else  
              e.style.display = 'block';  
        }  
    // ]] >  
    </script>  
  
    <script type="text/javascript">  
  
        function showVideo(videoType, url) {  
  
            var showId, hideId;  
  
            if (videoType == 'megavideo') {  
  
                showId = 'megavideo';  
                hideId = 'duckload';  
  
                document.getElementById('megavideo_url1').value = url;  
                document.getElementById('megavideo_url2').src = url;  
  
            } else if (videoType == 'duckload') {  
  
                showId = 'duckload';  
                hideId = 'megavideo';  
  
                document.getElementById('duckload_url').value = url;  
  
            }  
  
            document.getElementById(showId).style.display = 'block';  
            document.getElementById(hideId).style.display = 'none';
  1. Hi,

    Beim IE8 kommt folgende Fehlermeldung nachdem man auf den Button klickt :

    Meldung: 'document.getElementById(...)' ist Null oder kein Objekt

    Aus der gezeigten Funktion toggle_visibility kann diese Meldung nicht stammen. Vielleicht aus showVideo, denn dort wird versucht, direkt mit dem Rückgabewert von getElementById weiter zu arbeiten.

    Sag uns bitte, welche Zeile die ist, auf die sich die Meldung bezieht, und zeige uns bitte auch das HTML, in welchem der Aufruf geschieht.

    Ein auf's wesentliche reduziertes Online-Beispiel hilft ggf. eher weiter, als ein paar Codeschnippsel, in denen nicht viel relevantes erkennbar ist.
    </hilfe/charta.htm#tipps-fuer-fragende>

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Die 3 Datein müssten die richtigen sein :

      viewtopic_body.html:
      http://www.example.org/viewtopic_body.txt
      viewtopic.php:
      http://www.example.org/viewtopic.txt
      overall_header.html:
      http://www.example.org/overall_header.txt

      Kenne mich mit php und java leider überhaupt nicht aus.
      Ich hoffe mir kann jemand weiterhelfen.

      1. Hi,

        Die 3 Datein müssten die richtigen sein :

        Zum Nachvollziehe des Problems unbrauchbar.
        Abgesehen davon, dass vermutlich niemand Lust hat, fremden PHP-Code ohne ausführliche Kontrolle auf einem eigenen System auszuführen, liegen uns auch die zahlreichen include-Dateien und auch die serverseitig gespeicherten Daten (Datenbank, o.ä.) nicht vor.

        Du hast ein clientseitiges Problem, da interessiert serverseitiger Code erst mal überhaupt nicht.

        Bitte zeige uns ein *Online*-Beispiel.

        Kenne mich mit php und java leider überhaupt nicht aus.

        Dann solltest du dich mit den Grundlagen dieser Techniken beschäftigen, wenn du sie einsetzen willst.
        Außerdem meinst du JavaScript, nicht Java.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Hier ein Beispiel :
          http://www.example.org/viewtopic.php?f=202&t=1272

          Wie gesagt , problem ist nur beim IE.
          Ich würde sagen Problem liegt in der overall_header.html Datei. Das was ich auch im ersten Post schon gepostet habe.
          Aber mehr weis ich leider auch nicht.

          1. Hi,

            OK, es liegt also wie vermutet an diesen Zeilen:

            document.getElementById('megavideo_url1').value = url;

            document.getElementById('megavideo_url2').src = url;

              
            Das Element mit der ID megavideo\_url1 ist ein PARAM-Element,  
            `<param name="movie" id="megavideo_url1" value="">`{:.language-html}  
              
            
            > Wie gesagt , problem ist nur beim IE.  
              
            Laut MSDN ist Microsoft offenbar der Meinung, dass PARAM nicht zu den Elementen gehört, die ein id-Attribut besitzen können, <http://msdn.microsoft.com/en-us/library/ms533880(VS.85).aspx> - vermutlich geht deshalb also der Zugriff auf das Element per ID schief, und führt damit im Anschluss zum Fehler.  
              
            Im IE ist es aber soweit ich weiß sowie problematisch, Änderungen an den Parametern von Flash-Objekte durch Manipulation der Eigenschaften von PARAM-Elementen zu erreichen - auf komplettes Neu-Erzeugen des OBJECTS per innerHTML zu setzen, ist der einzige schnelle Workaround, der mir dazu bekannt ist.  
            Aber in der Frage wirst du dich an jemand anderen wenden müssen, wen du genaueres wissen oder gar eine „fertige Lösung“ haben willst.  
              
            
            > Ich würde sagen Problem liegt in der overall\_header.html Datei. Das was ich auch im ersten Post schon gepostet habe.  
              
            Aus welcher Template-Datei irgendwas stammt, ist dem Browser letztendlich egal. Den interessiert, was letztendlich bei ihm ankommt.  
              
            MfG ChrisB  
              
            
            -- 
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?