2010-12-02 7 views
0

단추가있는 포함 된 플래시 무비가있는 HTML 페이지가 있습니다. 플래시의이 단추는 lnkEmail의 click 이벤트를 호출합니다. 실제로 새로운 페이지로 이동하는 것을 멈추기로되어 있지만 event.preventDefault(); 이벤트 처리기에서 false를 반환하는 것은 나를 위해 작동하지 않는 것 같습니다. 누구나 통찰력을 제공 할 수 있습니까?jQuery 클릭 이벤트가 href로 리디렉션되지 않음

아래의 예는 Chrome에서 작동하지만 IE 7 및 FF에서는 실패합니다. 이러한 브라우저에서는 Object [object]가있는 빈 페이지로 리디렉션되고 FF에서는 Flash 무비에서 실행되는 javascript 코드로 설정된 URL이 있습니다. (예 : "javascript : jQuery ('# lnkEmail') click();")

아래는 Flash ActionScript의 코드입니다.

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

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

그리고 나중에 같은 파일 :

<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> 
+0

이는 크롬에서 작동하는지 언급하는 것을 잊었다. 하지만 IE 7에서는 FF로 Object [object]가있는 페이지와 javascript : jQuery ('# lnkEmail'). click();과 같은 URL로 리디렉션됩니다. – Rob

+0

스택 오버플로에 오신 것을 환영합니다! 질문의 오른쪽 하단에있는 '편집'링크를 클릭하여 원래 게시물을 편집 할 수 있습니다. 이와 같은 것을 말할 필요가 없습니다. –

답변

0

올바른 방법 (감사합니다 corneliu)이 이렇게 내가 다시 여기에 참조로 게시 할 줄 알았는데. 플래시 파일에서

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

: HTML 파일에서

import flash.system.Security; 

cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler); 

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

굉장, 안녕 롭 당신은 자신의 대답을 받아 들일 수 있어야합니다. 그러면 검색으로 찾을 수있는 다른 사용자에게 도움이됩니다. – jyoseph

1

navigateToURL 문서에서 살펴 보자 : 포함하는 HTML 페이지에서

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

는 다음 스크립트와 요소가 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/package.html#navigateToURL%28%29 . 링크가 javascript: 인 경우에는 사용할 수 없습니다.

원하는 것을하려면 ExternalInterface.call()을 사용하십시오.

+0

void (0) 추가; navigateToURL()을 호출 한 후 솔루션이 종료되었습니다. void (0); 브라우저가 새 페이지를 특별히 열지 않도록합니다. 어딘가에있는 Flash 문서 페이지에서이 사실을 발견했습니다. 오, 그렇습니다. allowScriptAccess = "always"를 플래시 바에 추가해야했습니다. 또한 지금은 ExternalInterface를 사용하여이를 수행하는 방법을 보았습니다. 실제로이 작업을 수행하는 올바른 방법처럼 보입니다. – Rob

+0

그 전에 잘못된 ... 추가 void (0); 자바 스크립트 안의 lnkEmail 엘리먼트에서 click()을 호출 한 후 솔루션이 종료되었다. – Rob

+0

"javascript : jQuery ('# lnkEmail'). click(); void (0);" – Rob