Frage

Ich habe eine HTML-Seite mit einem eingebetteten Flash-Film bekommt, das eine Schaltfläche hat. Diese Schaltfläche in Flash ruft das Ereignis Click der lnkEmail. Es sollte aus tatsächlich der Navigation zu einer neuen Seite stoppen, aber die Event.preventDefault (); und die Rückkehr von falschen aus dem Event-Handler nicht scheinen, für mich zu arbeiten. Kann jemand Einsicht zur Verfügung stellen?

Das folgende Beispiel funktioniert in Chrome, aber nicht in IE 7 und FF. In diesen Browsern leitet es auf eine leere Seite mit Object [object] wie der Körper und in FF hat den URL-Satz an den JavaScript-Code, den ich aus dem Flash-Film auszuführen. (Dh: "javascript:. JQuery ( '# lnkEmail') klicken ();")

Im Folgenden finden Sie den Code im Flash Actionscript.

cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:MouseEvent):void {
   navigateToURL(
      new URLRequest(
         "javascript:jQuery('#lnkEmail').click();"
      ), 
      "_self"
   );
}

In der HTML-Seite gibt es die folgenden Skripte und Elemente:

<script type="text/javascript">
   $(function(){
      $.nyroModalSettings({
         debug: true
      });

      $('#lnkEmail').click(function(event) {
         event.preventDefault();
         $.nyroModalManual({
            url: 'demoRequest.aspx?Type=4'
         });
         return false;
      });
   });
</script>

Und später in der gleichen Datei:

<div id="box_stage_home">
   <script type="text/javascript">
      $(document).ready(function() { 
         $('#HomeAnimation').flash({ 
            swf: 'Flash/index_page.swf', 
            height: 288, 
            width: 686, 
            wmode: 'transparent' 
         }); 
      });
   </script>
   <div id="HomeAnimation"><!--IE 6.0--></div>
   <a href="emailSend.aspx?Type=4" id="lnkEmail">&nbsp;</a>
</div>
War es hilfreich?

Lösung 2

, um die richtige Art und Weise (dank Corneliu) durchschaut hat, dies zu tun, so dachte ich, es schreiben würde als Referenz hier zurück. In der HTML-Datei:

<script type="text/javascript">
   function viewDemo() {
      $.nyroModalManual({
         url: 'emailSend.aspx?Type=4'
      });           
   }
</script>

In der Flash-Datei:

import flash.system.Security;

cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);

function clickHandler(event:MouseEvent):void {
   flash.system.Security.allowDomain("business.com");
   ExternalInterface.call("viewDemo");
}

Andere Tipps

Werfen Sie einen Blick auf die navigateToURL Dokumentation:

scroll top