iframe und zurück-Button

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

  • iframe und zurück-Button

    Hallo zusammen,

    auf meiner Seite habe ich für n Titel einen Vorhör-Button, der in einem iframe (1x1 pixel) eine Flash-Datei startet, die diesen Titel abspielt.
    Mein Problem ist jetzt, dass mit dem Zurück-Button - logischerweise - alle Titel, die angehört wurden, noch mal rückwärts abgespielt werden, weil der Zurück-Button ja im iframe greift.

    Hab jetzt gedacht, ich setze den Focus nach dem Abspielen wieder auf das parent-window, der Zurück-Button ist aber wohl "Fenster-Global". Ne andere Möglichkeit, die aber wohl nicht funzt, ist das Löschen des letzten History-Eintrages. Gibt es da noch andere Möglichkeiten?

    VIELEN DANK!

    strauberry

  • #2
    Hmm, wie ist es mit dem Referer? Der müßte doch die jeweils vorige Seite drinhaben, wenn man via Back-Button kommt? Korrigiert mich, falls ich falsch liege.

    Falls ich recht habe, müßtest Du via PHP prüfen, ob der Referer sich auf eine "vor" der aktuellen Seite liegende Adresse bezieht, und in dem Fall das automatische Abspielen verhindern.

    Kommentar


    • #3
      Du kannst den Player direkt in die Hauptseite einbinden, allerdings benötigst du dann JavaScript oder musst die Seite komplett neu laden.

      Kommentar


      • #4
        Hallo,

        danke für eure Antworten! Ich würde gerne dann das Ding direkt in die Seite einbauen, weil wenn ich das erneute Abspielen verhindere, klickt der User evtl. paar Mal auf den Zurück-Button und "es passiert nichts".

        Wie kann ich Daten von JS an Flash schicken? Habe mir mal das Tut unter http://www.php-resource.de/tutorials/read/45/1/ angeschaut. Hier steht, dass JS -> Flash eher problematisch ist...

        DANKE!

        strauberry

        Kommentar


        • #5
          Ist nicht so schwer. Guck dir mal die ExternalInterface-Klasse an. Auf der verlinkten Seite sind auch Beispiele, damit solltest du klar kommen.

          Kommentar


          • #6
            Super, vielen Dank! Schau ich mir direkt mal an :-)

            Kommentar


            • #7
              So, hab mir das jetzt mal angeschaut... hab zwar verstanden, wie das funzen soll, es funzt aber nicht :-)

              Ich verwende Flash 8 und hab das mal so gemacht:

              PHP-Code:
              this.Debug.text 'start';
              if (
              ExternalInterface.available) {
                  try {
                       
              // Append callback
                       
              this.Debug.text 'addcallback';
                      
              ExternalInterface.addCallback("play"internalPlay);
                  } catch(
              e) {}
              }

              function 
              internalPlay(soundID:String) {
                  
                  
              // create new sound object
                  
              MySound = new Sound();
                  
                  
              // load sound file
                  
              MySound.loadSound('path/' soundID '.mp3'StreamSignal);
                  
                  
              // set volume to 100%
                  
              MySound.setVolume(100);
                  
                  
              // set balance to 0
                  
              MySound.setPan(0);
                  }

              Debug ist eine Textbox. Leider steht in der Textbox nur Start, aber nicht "addCallback". Hab diesen Code-Schnipsel in das erste Frame meines Films gemacht (der hat eh nur eins :-) )

              Folglich bekomme ich bei

              PHP-Code:
              document['previewPlayer'].play(id); 
              Den JS-Fehler, dass play keine Funktion sei (klar).

              In der Doku steht, dass das NPRuntime API unterstützt werden muss. Bei dem FF 2 auf Mac sollte das aber doch der Fall sein, oder nicht?

              Wäre top, wenn mir hier jemand weiterhelfen könnte!

              VIELEN DANK!

              strauberry

              Kommentar


              • #8
                1. In the object tag for the SWF file in the containing HTML page, set the following parameter:
                <param name="allowScriptAccess" value="always" />
                2. In the SWF file, add the following ActionScript:
                flash.system.Security.allowDomain(sourceDomain)
                beachtet?

                Kommentar


                • #9
                  So, hab das ganze jetzt zum Laufen gebracht.

                  - Die Methoden, die man für den externen Zugriff registriert, dürfen keine reservierten Namen haben (play, stop, ...) sonst steigt der IE aus

                  Waren noch paar andere Dinge, wenn jemand möchte, kann ich den Code gerne posten.

                  Jetzt ist nur ein anderes Problem: wenn ich im IE 6 eine Methode im swf aufrufe, hört der IE einfach auf, danach weiteren JS-Code auszuführen.

                  alert("1");
                  swfCall();
                  alert("2");

                  Die 2 erscheint nicht mehr... was ist da los :-)?

                  DANKE!

                  Kommentar


                  • #10
                    Der Windows Script Debugger macht den IE genauso gesprächig wie die Firefox-Javascript-Konsole. Unbedingt die Readmes lesen, bei der Installation muß man ein paar Dinge beachten.

                    Kommentar

                    Lädt...
                    X