basti_p: swf mit javascript einfügen

Hallo,

um die Meldung "Klicken Sie hier..." bei z.B. FlashMovies im IE loszuwerden, habe ich bisher per JavaScript das Flash-Objekt gelöscht und dann das object-Tag als String neu aufgebaut und über innerHTML eingefügt - was auch funktioniert hat - kein Rahmen mehr.

Um das Ganze zu vereinfachen und ggf. auch mehrere SWF's zu verarbeiten, wollte ich jetzt folgendermaßen vorgehen:

if(document.getElementsByTagName("object").length>0)
{
for(var i=0;i<document.getElementsByTagName("object").length;i++)
{
var tmpNode=document.getElementsByTagName("object")[i].cloneNode(true);
var parNode=document.getElementsByTagName("object")[i].parentNode;
parNode.removeChild(document.getElementsByTagName("object")[i]);
parNode.appendChild(tmpNode);
}
}
}

Die Funktion wird bei body.onload aufgerufen. Das Movie wird zwar neu eingefügt - der Rahmen mit der Meldung bleibt leider. Könnt Ihr mir sagen, woran dass liegt?

Danke und Grüße Basti

  1. hi,

    um die Meldung "Klicken Sie hier..." bei z.B. FlashMovies im IE loszuwerden,

    Schau dir mal UFO an.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Vielen Dank für den Link, sehr interessant,

      ich möchte allerdings alle in einer Seite eingebundenen Flash-Objekte im IE automatisch neu einfügen. Ich habe es jetzt erstmal so gelöst - ist zwar getrickst, funktioniert aber:-)

      for(...){
      var tmpNode=document.createElement("div");
      tmpNode.appendChild(document.getElementsByTagName("object")[i].cloneNode(true));
      var parNode=document.getElementsByTagName("object")[i].parentNode;
      parNode.removeChild(document.getElementsByTagName("object")[i]);
      parNode.innerHTML+=tmpNode.innerHTML;
      }

      Grüße Basti

      1. Lieber basti_p,

        ich möchte allerdings alle in einer Seite eingebundenen Flash-Objekte im IE automatisch neu einfügen.

        in Anbetracht, dass vielleicht User anderer Browser überhaupt keinen Flash-Plugin installiert haben, denke ich, dass das dynamische Einbinden eines Flashfilms sowieso eine sinnvolle Vorgehensweise ist.

        Allerdings finde ich Deinen Ansatz verbesserungswürdig, da er bereits eingebundene Flashfilme aus dem Dokument ausschneidet, um sie dann wieder einzufügen... Wie wäre es denn, kleine Platzhalter (<div>) einzusetzen, die erst auf einen Klick hin den Flashfilm einbinden und abspielen? Ich stelle mir das in etwa so ähnlich vor, wie es das die FlashBlock-Erweiterung des Firefox tut. Ich liebe es, Flash nur auf Abruf abzufahren!

        Dabei könnte man so vorgehen:

        <!-- HTML-Teil -->  
        <div class="flashplayer"><a href="{link-zur-SWF-datei}">Flashfilm abspielen</a></div>
        
        /* JavaScript-Teil */  
        function init() {  
            // alle Platzhalter finden und...  
            var divs = document.getElementsByTagName("div");  
            var fplayers = new Array();  
            for (var i=0; i < divs.length; i++) {  
                if (divs[i].className && divs[i].className == "flashplayer")  
                    fplayers[fplayers.length] = divs[i];  
            }  
          
            // ....onclick-Handler auf den Link legen  
            for (var i=0; i < fplayers.length; i++)  
                fplayers[i].getElementsByTagName("a")[0].onclick = function () {  
                    wandle_div_zu_SWF(this);  
                };  
        }  
          
        // Die Umwandlungsfunktion  
        function wandle_div_zu_SWF(linkObj) {  
            var swfDatei = linkObj.href;  
          
            // DIV-Element (ist ein Vorfahren-Element) finden  
            var div = linkObj;  
            while (!div.tagName || div.tagName != "div")  
                div = div.parentNode;  
          
            /* Hier jetzt die Ersetzung vornehmen! Die URL zur Flashdatei steht in  
               "swfDatei", das Platzhalter-DIV steht in "div"... */  
        }
        

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)