Domanda

Ho una pagina HTML con un filmato flash incorporato, che ha un pulsante. Questo pulsante flash invoca evento click del lnkEmail. Si suppone che impedisce di fatto la navigazione verso una nuova pagina, ma l'event.preventDefault (); e il ritorno della falsa dall'evento gestore non sembrano essere lavorare per me. Qualcuno può fornire una visione?

Il sotto esempio sta lavorando in Chrome, ma fallisce in IE 7 e FF. In quei browser che reindirizza a una pagina vuota con oggetto [oggetto] come il corpo e in FF ha il set di URL per il codice javascript eseguo dall'interno del filmato Flash. (Vale a dire: "javascript:. JQuery ( '# lnkEmail') clicca ();")

Di seguito è riportato il codice in Flash ActionScript.

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

Nella pagina HTML contenente c'è i seguenti script ed elementi:

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

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

E più tardi nello stesso file:

<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>
È stato utile?

Soluzione 2

capito il modo corretto (grazie Corneliu) per fare questo in modo ho pensato di postare di nuovo qui per riferimento. Nel file HTML:

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

Nel file Flash:

import flash.system.Security;

cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);

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

Altri suggerimenti

Date un'occhiata alla documentazione navigateToURL: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/package.html#navigateToURL%28%29 . Non è intendend per essere utilizzato con i collegamenti javascript:.

Per fare ciò che si vuole, l'uso ExternalInterface.call().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top