Dag: QuickTime Einbindung, Kein 2tes mal Laden, IE und Safari

Moin moin,

ich habe meinen Bildwechsler (Fotographen-Seite), für eine andere Sektion umgebaut, dass dort QTVRs ausgetauscht werden. Via JavaScript und innerHTML setzte ich das object/embed in eine bestimmte Tabellenzelle, wobei die Funktion vorher die richtigen src Attribute setzt. Im Firefox fubktionierts am bnesten, der IE6/5.5 und Safari 1.2 (2.0 angeblich wieder nicht) machen folgendes Problem.

Wenn man aus der Thunmbnailleiste einen weitern Film auswählt wird dieser geladen und gezeigt. Will man aber wieder den alten sehen und klickt zB wieder auf Movie 1, der ja mit der Initialisierung der Seite schon einmal geladen wurde, dann wird dieser nicht angezeigt. Das QT PLugIn sitztz noch da (rectsklick und das Menü dazu erscheint), aber der Film wird nicht wieder angezeigt. Nur Filme die noch nicht ausgewählt wurden, werden geladenangezeigt. Welche, die schoneinmal da waren nicht.

Dachte erst an nen IE Bug, aber Safari1.2 macht das ja auch. Wo könnte der Fehler dazu sein, wenn denn überhaupt einer ist.

D.

  1. Hallo Dag,

    Dachte erst an nen IE Bug, aber Safari1.2 macht das ja auch. Wo könnte der Fehler dazu sein, wenn denn überhaupt einer ist.

    Auf dieser Developer-Seite habe ich folgende Information gefunden:

    "The QuickTime plug-in is scriptable from the Safari browser, but Mac OS X v10.4 (Tiger) or later is required.

    Internet Explorer for Macintosh does not allow scripting of any plug-in."

    Vielleicht findest du von da aus ja wenigstens eine Lösung für Safari, wenn dein Mac die Voraussetzungen erfüllt.

    Gruß Gernot

    1. Hallo Gernot,

      vielen Dank fpr den Tipp. Dazu nochmal, bim IE redete ich auch vom Windows IE, hätte ich besser ausdrücken können. Aber mal eine Frage zu dem dort genannten Beispiel, welches so öfters im Netz auftaucht. Genau zum Codefragment:

        
       <P>Replace a movie by name directly: <br>  
        
        
        
       <a href="javascript:document.movie1.SetURL(MyOther.mov);">movie1.SetURL(MyOther.mov)</a><br>  
        
        
        
       <a href="javascript:document.movie1.SetURL(My.mov);">movie1.SetURL(My.mov)</a><br>  
        
        
        
       <a href="javascript:document.movie2.SetURL(MyOther.mov);">movie2.SetURL(MyOther.mov)</a><br>  
        
        
        
       <a href="javascript:document.movie2.SetURL(My.mov);">movie2.SetURL(My.mov)</a><br>  
      
      

      "document.Elementnamen.Funktion();" wird denn welches Element genau angesprochen, ich muss ja 2 (!) URLs austauschen. Funktionieren tuts ja immer, wenn ich diese "herkömmliche" Variante benutze. Ich bin aber nicht sicher ob das Script die EMBED und die OBJECT URL anspricht.

      Außerdem sehe ich ja grad, setURL ist ja keine JS interne Funktion.

      Also die große Frage: wie baue ich in setURL(url) Funktion, dass sie die URL des EMBED UND des OBJECT setzt?

      1. Hallo Dag,

        <a href="javascript:document.movie1.SetURL(MyOther.mov);">movie1.SetURL(MyOther.mov)</a><br>

        "document.Elementnamen.Funktion();" wird denn welches Element genau angesprochen, ich muss ja 2 (!) URLs austauschen. Funktionieren tuts ja immer, wenn ich diese "herkömmliche" Variante benutze. Ich bin aber nicht sicher ob das Script die EMBED und die OBJECT URL anspricht.

        Außerdem sehe ich ja grad, setURL ist ja keine JS interne Funktion.

        nein, das ist hier wohl eine Quicktime-Methode

        Also die große Frage: wie baue ich in setURL(url) Funktion, dass sie die URL des EMBED UND des OBJECT setzt?

        Vielleicht kannst du dir für Quicktime eine ähnliche Routine zum Ansprechen des Plugins schreiben, wie sie hier in meinem Artikel für Flash beschrieben wird.

        http://aktuell.de.selfhtml.org/artikel/programmiertechnik/liveconnect/index.htm#js_flash

        Gruß Gernot

        1. Hallo nochmal.

          nein, das ist hier wohl eine Quicktime-Methode

          Ja hab auf den Apple Seiten dann auch wieder gefunden :_)

          Also die große Frage: wie baue ich in setURL(url) Funktion, dass sie die URL des EMBED UND des OBJECT setzt?

          Vielleicht kannst du dir für Quicktime eine ähnliche Routine zum Ansprechen des Plugins schreiben, wie sie hier in meinem Artikel für Flash beschrieben wird.

          Habe ich mal ausprobiert. Das PlugIn sprichst Du dann an, indem Du die Ausführbarkeit der Fuktionen testest. ICh habe mal die QT Methoden dafür probiert, aber der IE mag Sie einfach nicht. Dann habe ich Sie weggelassen, das brachte auch nischt.

          Übrigends, ich habe mal das originale Apple Beispiel ausprobiert, das funktioniert auch wieder nur im FireFox(Win), der IE spuckt unbekannte Fehler diesmal aus (Win) und der Safari auf dem Mac reagiert nicht. Super Apple. :-)

          Bisher ist die innerHTML, die übrigends so aussieht überall am besten gefahren mit der Ausnahme, das schon mal geladenen Filme nicht ein zweites mal angezeigt werden wollen, vielleicht grade ich mein QT mal down, wenns geht.

            
           /*  
           composes a HTML code fragment for object and embed tag with required url  
           @param src the source of needed movie  
           @return the HTML code  
           */  
           function getHTMLStr(src)  
           {  
            htmlStr = "";  
            htmlStr = htmlStr+"<object id='movie' width='500' height='350' classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' codebase='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0'>\n";  
            htmlStr = htmlStr+"<param name='src' value='"+src+"'>\n";  
            htmlStr = htmlStr+"<param name='autoplay' value='false'>\n";  
            htmlStr = htmlStr+"<param name='controller' value ='false'>\n";  
            htmlStr = htmlStr+"<param name='type' value='video/quicktime'>\n";  
            htmlStr = htmlStr+"<param name='pluginspage' value='http://www.apple.com/quicktime/download/'>\n";  
            htmlStr = htmlStr+"<embed name='movie' width='500' height='350' src='"+src+"' type='video/quicktime' autoplay='false' controller='false' enablejavascript='true' pluginspage='http://www.apple.com/quicktime/download/'>\n";  
            htmlStr = htmlStr+"</embed>\n";  
            htmlStr = htmlStr+"</OBJECT>";  
          //  alert(htmlStr);  
            return htmlStr;  
           }  
            
            
            
          //ausgeführt wird sie so  
            
          document.getElementById("movieCell").innerHTML = getHTMLStr(loadImage(i));  
            
          // loadIMage() gibt die gewollte URL zurück.  
          
          
          1. So,

            vorerstmal erledigt. Habe mein PlugIn downgegraded. Entweder ist die neuste QT Version noch nicht ganz in Ordnung, oder die Movies sind auch nicht koorrekt exportiert.....