Pregunta

Tengo una página HTML con una película flash incorporado, que tiene un botón. Este botón flash invoca evento click del lnkEmail. Se supone que dejara de navegar en realidad a una nueva página, pero el event.preventDefault (); y la devolución de falsa desde el controlador de eventos no parece estar funcionando para mí. ¿Alguien puede dar una idea?

El debajo de ejemplo está trabajando en Chrome, pero falla en IE 7 y FF. En aquellos navegadores que redirige a una página en blanco con el objeto [objeto] como el cuerpo y en FF tiene el conjunto de direcciones URL con el código Javascript ejecuto desde el interior de la película Flash. (Es decir: "javascript:. JQuery ( '# lnkEmail') haga clic en ();")

A continuación se muestra el código en el ActionScript.

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

En la página HTML que contiene hay las siguientes secuencias de comandos y elementos:

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

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

Y más tarde en el mismo archivo:

<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>
¿Fue útil?

Solución 2

Descubierto la manera adecuada (Corneliu gracias) para hacer esto, así que pensé que había puesto de nuevo en aquí por referencia. En el archivo HTML:

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

En el archivo flash:

import flash.system.Security;

cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);

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

Otros consejos

Tome un vistazo a la documentación navigateToURL: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/package.html#navigateToURL%28%29 . No se intendend para ser utilizado con enlaces javascript:.

Para hacer lo que quiera, el uso ExternalInterface.call().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top