본문 바로가기

개발

Javascript에서 플래시 Object 객체 잡기

[링크] Object Tag - 이 글은 Object 표준태그를 기준으로 설명하고 있습니다.

=== Flash Object 인식 함수함수 (JavaScript)
function getMovie( id ) {
     var obj = document.getElementById( id );
    if( typeof objobj != 'object' && navigator.userAgent.indexOf("Safari") == -1 ) obj = obj.getElementsByTagName( 'object''object' )[0];
    return obj;
}

=== getMovie 함수 사용 예시 코드 (JavaScript)
var objobj = getMovie( "flash_obj" );
obj.style.height = "100px";

====== 코드 해석
- 이중으로 된 object 태그의 경우 ActiveX 기반으로기반으로 플래시를 재생하는 IE의 경우 바깥쪽, 나머지 브라우저는 안쪽 태그를 이용해 화면에화면에 표시하게 됩니다. 안팎의 object에 각기 다른 id를 주는 방법도 있겠지만 최대한최대한 같은 id를 할당한 상태에서 해결을 보는게 좋다고 생각됩니다.
- 성공적으로 object를object를 로드하면 객체의 유형이 object로 잡히고 실패할 경우 function으로 잡히게 됩니다. 이이 것을 이용해 obj가 function으로 잡힐 경우 내부 오브젝트를 한번 더 탐색하는 구조입니다.
- 그러나 어쩐일인지 Safari에서 바깥쪽 object를 제대로 해석하게 됩니다. 같은 엔진의 크롬과 다르게 동작하는 것으로 보아 둘 중 하나의 버그가 아닐까 생각합니다. 여튼 조건식에 브라우저 판별식을 추가했습니다.

근데 이렇게 설명해도 잘 모르시겠는 분들은 그냥 복사해서 사용하시면사용하시면 됩니다. [...]
※ 샘플파일을 업로드 했습니다. 샘플파일은 로컬에선 동작하지 않습니다.않습니다. 반드시 웹 환경에서 테스트 하세요.