이 글은 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 을 사용하는 형태로 변경하니 모든 브라우저에서 이상이 없네요
++
'테크노트' 카테고리의 다른 글
| js를 PNG이미지 파일로 압축하기 (1) | 2009/07/28 |
|---|---|
| 웹에서 실시간 경험하기, Comet (0) | 2009/07/13 |
| 플래시 navigateToURL() 팝업차단 문제 (6) | 2009/07/10 |
| wmode=transparent 이야기 (0) | 2009/06/09 |
| javascript로 IE6, IE7 구분하기 (1) | 2009/05/19 |
| 간단하게 RSS리더 만들어 보기 (0) | 2009/04/30 |
댓글을 달아 주세요
좋은 정보 감사드립니다. ^^
꼼꼼히 테스트 하셨네요.
혹시라도 다른 해결방법을 알려주는 분이 계실까하고 정리해봤는데 정말 제가 정리한 내용이 다른분들도 경험하는듯 합니다
좋은정보 감사드립니다.
공유해주신 정보 참고하여 무사히 팝업차단 피해갔네요.
저같은 경우 ie를 체크하는 부분을 var pleaseIE = navigator.userAgent.indexOf('MSIE',0);return pleaseIE;
이용했습니다. ie일 경우 25를 리턴하구요, 아닐경우 -1을 리턴합니다.
document.all 의 경우 ie 전용이긴 하지만, 다른브라우저에서도 상황에따라(?) 먹힌다고 들은것 같아서요!
자, 그럼 오늘도 행복하시길~
그렇군요 감사합니다^^
좋은 정보 감사합니다~~
혼합형으로 하면 팝업차단이 되지 않는다고 하는데요..
클릭시 새창이 나오잖아요..
혹시 클릭하지 않고 바로 실행시 새창이 나오겠금 하려면 어떻게 소스를 넣어야하죠??
궁금합니다..ㅠㅠ 알려주세요