코드/JS

Javascript 에서 플래시 Object 잡기

Yeah-Panda 2011. 1. 27. 17:29


=== 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를 제대로 해석하게 됩니다. 같은 엔진의 크롬과 다르게 동작하는 것으로 보아 둘 중 하나의 버그가 아닐까 생각합니다. 여튼 조건식에 브라우저 판별식을 추가했습니다.

출처 : http://grotesq.tistory.com/?page=53

'코드 > JS' 카테고리의 다른 글

(function($){...})(jQuery)  (0) 2013.07.12
jQuery.extend  (0) 2013.06.27
자바스크립트로 stylesheet 파일 로드하기  (0) 2013.01.15
자바스크립트 반복문 ;i++<len;  (0) 2013.01.13
멀티 문자열에서 빈 줄 없애기  (0) 2011.11.24