Animierte Grafik als Upload-Anzeige - wie?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Animierte Grafik als Upload-Anzeige - wie?

    Hallo,

    nachdem ich nun schon ein paar Stunden versuche, beim Abschicken des Formulars ein animiertes GIF anzuzeigen ("bitte warten") und mir das nicht gelingt...


    ...vielleicht weiß ja hier jemand weiter.



    Der Formular-Button:

    PHP-Code:
    <input type="Button" value="zur Bestellung hinzuf&uuml;gen" onClick="warten()"

    Die dazugehörige JavaScript-Methode:

    PHP-Code:
            <script type="text/JavaScript">
                
                            function 
    warten()
                            {
                                            
    moment = new Image();
                                            
    moment.src "../grafik/moment.gif";
                                            
    window.document.images["moment"].src moment.src;
                                            
                                            
    document.getElementById('upload').submit();
                                             
    // wobei es sich ums Formular handelt ;-)
                            
    }
                            
    </
    script
    Es lässt sich feststellen, dass die animierte Grafik nur dann eingebaut wird, wenn das Formular anschließend nicht weggeschickt wird. Dann geht das zwar mit der Anzeige, bringt nur nichts ohne Upload, der Upload zur Anzeige sollte schon auch funktionieren.
    Den gleichen Effekt hab ich natürlich, wenn ich einen Submit-Button verwende und nur die Grafik über die JavaScript-Methode auszutauschen versuche, das Formular aber ohne JavaScript abschicke.


    Geht das nur wieder über AJAX (Flash kommt nicht in Frage) oder gibts auch einen anderen Trick, wie sich eine animierte Uploadanzeige sichtbar ins Dokument einbauen lässt, noch BEVOR das Formular abgeschickt wird?

    Gruß Maiki

  • #2
    Ich bin nicht sicher, ob das Dein Problem ist, aber viele Browser animieren während dem Absenden von Formularen keine GIFs. Einziges mögliches Workaround, das mir einfällt, wäre das benutzen von Frames bzw. IFrames: In einem Frame liegt das GIF, im anderen das abzuschickende Formular.

    Kommentar


    • #3
      Kann ich jetzt nicht bestätigen. Wenn ich die animierte Grafik vorher schon darstelle und den Download mit einer monströsen Grafik starte, wird die Grafik (im Firefox) weiterhin animiert angezeigt.

      Es muss was mit "Reihenfolge" zu tun haben?

      Kommentar


      • #4
        Probier mal, die Grafik direkt nach dem Laden der Seite vorzuladen.

        ...wird die Grafik (im Firefox) weiterhin animiert angezeigt.
        Aber im IE nicht.
        Zuletzt geändert von pekka; 31.05.2007, 17:34.

        Kommentar


        • #5
          Es hat aber ganz sicher nichts mit PHP zu tun. *move* nach HTML

          Kommentar


          • #6
            Hi,

            ich habe mal "onsubmit" ein vorher unsichtbares div mit animierter Grafik über ein Formular gelegt. Hat problemlos funktioniert.

            LG

            Kommentar


            • #7
              Auch im Gruselbrowserchen IE? Dann wär die Methode... gut.

              Kommentar


              • #8
                Bei mir funktioniert der div-Trick im Firefox auch, nur im IE wieder nicht...


                Die Box:
                <div id="box" class="box">

                <table border="0" bgcolor="#ffffff" width="100%" cellspacing="0" style="padding:10px;margin:0px;">

                <tr>
                <td valign="top">
                <img src="../grafik/moment.gif" name="moment">
                </td>


                <td valign="middle" align="center">
                <b>Upload... bitte warten!</b>
                </td>
                </tr>
                </table>

                </div>
                Das CSS für die Box ist so definiert:
                #box { background-color:#ffffff; border:1px solid #222222; position:relative; left:500px; bottom:320px;
                width:320px; padding:25px; margin:0px; visibility:hidden; }
                Das Formular fängt so an:
                <form id="upload" action="upload.php" enctype="multipart/form-data" method="post" onsubmit="warten()">
                Die JavaScript-Funktion:
                function warten()
                {
                moment = new Image();
                moment.src = "../grafik/moment.gif";
                window.document.images["moment"].src = moment.src;

                document.getElementById("box").style.visibility = "visible";


                Im Firefox erscheint eine wunderschöne Box mit wunderschöner animierter Grafik mitten in der Seite, im IE nichts dergleichen.

                Kommentar


                • #9
                  zeigt der ie nen JS-Fehler (ich glaub in neueren Versionen muss man die Ausgabe erst explizit in den Einstellungen aktivieren)

                  Kommentar


                  • #10
                    *hehe* Da hab ich auch schon in allen möglichen Beiträgen rumgegoogelt, weiß nicht, wie man an die JavaScript-Konsole (oder Vergleichbares) im IE rankommt...


                    Hätt hier jemand was dagegen, wenn man diesen edlen Browser irgendwann mal... ad acta...?

                    Kommentar


                    • #11
                      könntest uns ja mal die seite zeigen.

                      Kommentar


                      • #12
                        (Wär eigentlich das Einfachste, aber leider handelt es sich da wieder um einen passwortgeschützten Bereich von jemand anderem, ach, Webprogrammierung ist schon was Feines, nur Theater mit lauter so Schnickschnack... )

                        Kommentar


                        • #13
                          Hi,

                          Funktionierte bei mir mit IE5.5, IE6, Opera, Safari und Firefox (mehr habe ich nicht getestet). Der IE hat keine Javascript-Konsole, wie der Firefox. Du kannst aber irgendwo in den Einstellungen aktivieren, dass er jeden Javascript-Fehler mit einem kleinen Fensterchen belohnt, in dem dann z.B. steht, dass in Zeile x eine Methode, Eigenschaft oder sonst was nicht gefunden wurde.

                          Wenn Du die Seite nicht zeigen kannst, dann stell ein Online-Beispiel mit einem einfachen form zur Verfügung.

                          Nimm mal die ersten 3 Zeilen deiner warten()-Funktion weg. Die sind doch überflüssig, oder?
                          Du hast ein Element mit name="moment" und eine Variable moment in der Funktion. Weiss nicht, ob das Probleme macht, aber IE reagiert da gerne etwas verschnupft.

                          Schreibe in das onsubmit "return warten();" (und vergiss das return true in der Funktion nicht...)

                          Wenn alles nichts hilft -> Online Beispiel

                          LG

                          Kommentar


                          • #14
                            Wenn Du die visibility-Sachen wegläßt, ist dann im IE was zu sehen?
                            Wenn auch nicht, probier mal position:relative oder fixed.

                            Kommentar


                            • #15
                              Wenn ich "visibility" in den CSS weglasse, wird die Box auch im IE angezeigt.


                              Mit den Hinweisen von kuddeldaddeldu hab ich es nun geschafft, dass auch im IE beim Upload die Box aufgeht. Immerhin, einen Schritt weiter.

                              Aber es wär ja nicht der IE, wenn es da nicht gleich wieder ein neues Problem gäbe...!

                              Aktuelles Problem nun wieder:

                              Das animierte GIF ist während des Uploads nicht animiert.


                              Dieses Problem scheint bekannt zu sein, hab dazu einige Forenbeiträge gefunden, allerdings bisher keine Lösung.

                              Hab schon versucht, in die div-Box einen IFRAME reinzuladen, in den ich wiederum ein Dokument lade, das die animierte Grafik beinhaltet, hilft aber nicht, das GIF bleibt während des Uploads unanimiert.

                              Im Plesk (kennen ja wahrscheinlich die meisten, die irgendwo Pakete gehostet haben) schaut die zentrierte Ladeanzeige ideal aus, auch im IE, weiß nur nicht, ob es da an irgendeiner Stelle auch einen Upload gibt...



                              (Naja, aber eins muss man dem IE lassen: Er schafft erfolgreich nachhaltig Arbeit, IE statt Hartz und Müntefering! )



                              [COLOR=silver].[/COLOR]
                              Zuletzt geändert von *Maiki; 01.06.2007, 04:21.

                              Kommentar

                              Lädt...
                              X