본문 바로가기

위기관리

ExternalInterface 사용 html 내부 자바스크립트함수 호출 버그

증상

<javascript>
     1. 자바스크립트 함수
</javascript>

<form method="post">
     2. 플래시 오브젝트 태그
</form>

위와 같은 구조에서 2번 플래시 내부 클래스인 ExternalInterface로 1번 자바스크립트 함수가 호출이 안되는 경우.
"객체가 정의되지 않았습니다."라는 스크립트 에러 발생. 

해결

1. <form>태그 밖으로 플래시 오브젝트 태그를 빼내면 됨.
2. <form>태그 밖으로 플래시 오브젝트 태그를 뺄수 없을 땐.

//플래시 코드 출력
document.write( flashStr );

//플래시의 버그 해결코드
첫번째 eval("window." + id + "=document.getElementById('" + id + "');");
두번째 window.YourFlashName = document.forms[0].YourFlashName; 

궁금

swfobject.js 를 사용하게 되면 이런 문제가 자연스럽게 해결되는지 테스트 해봐야겠다.