이 글은 ActionScript3(as3), 플래시플레이어 9,10 기준으로 작성 되었습니다

플래시 as3의 기본 URL이동 메소드는 navigateToURL()입니다.
하지만 이 기본 메소드를 사용하여 새창을 띄울때 IE의 기본팝업차단 기능에 걸리는 어처구니 없는 버그가 있군요.  
처음에는 swf를 웹페이지에 삽입하는 속성중에 wmode를 transparent로 했을경우에만 발생하는 문제인줄 알았으나 wmode와는 상관없이 IE에서는 document를 한번 마우스로 클릭하고 플래시링크를 클릭했을경우에는 모두 팝업차단에 걸려 버립니다

팝업차단 예제

  • navigateToURL : navigateToURL()메소드를 이용한 새창 열기
  • ExternalInterface : ExternalInterface.call("window.open", req.url);  형태로 새창 열기
  • 혼합형 : IE일 경우 무조건 ExternalInterface를 사용하는 메소드 사용(하단소스참고)

여러 브라우저에서 테스트를 해본 결과

현재 해결한 방법은 wmode를 transparent로 하고 –이럴경우 여러가지 2차적인 문제가 발생할수 있습니만 ;;- IE경우에만 ExternalInterface 을 사용하는 형태로 변경하니 모든 브라우저에서 이상이 없네요

++


Posted by 아지:)

트랙백 주소 :: http://blog.uix.kr/trackback/22 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://ani2life.egloos.com A2 2009/08/27 16:01  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사드립니다. ^^
    꼼꼼히 테스트 하셨네요.

    • Favicon of http://blog.uix.kr 아지:) 2009/08/28 10:13  댓글주소  수정/삭제

      혹시라도 다른 해결방법을 알려주는 분이 계실까하고 정리해봤는데 정말 제가 정리한 내용이 다른분들도 경험하는듯 합니다

  2. Favicon of http://cklife.tistory.com rewindme 2010/08/03 16:32  댓글주소  수정/삭제  댓글쓰기

    좋은정보 감사드립니다.
    공유해주신 정보 참고하여 무사히 팝업차단 피해갔네요.
    저같은 경우 ie를 체크하는 부분을 var pleaseIE = navigator.userAgent.indexOf('MSIE',0);return pleaseIE;
    이용했습니다. ie일 경우 25를 리턴하구요, 아닐경우 -1을 리턴합니다.
    document.all 의 경우 ie 전용이긴 하지만, 다른브라우저에서도 상황에따라(?) 먹힌다고 들은것 같아서요!

    자, 그럼 오늘도 행복하시길~

  3. Favicon of http://www.leeswk.com leeswk 2010/11/10 12:38  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다~~

  4. 궁금합니다.. 2011/01/01 05:08  댓글주소  수정/삭제  댓글쓰기

    혼합형으로 하면 팝업차단이 되지 않는다고 하는데요..

    클릭시 새창이 나오잖아요..

    혹시 클릭하지 않고 바로 실행시 새창이 나오겠금 하려면 어떻게 소스를 넣어야하죠??

    궁금합니다..ㅠㅠ 알려주세요