MS사가 이올라스(Eolas)사와의 특허 침해 소송에서 패소함에 따라 액티브X 기술의 사용을 제한하도록 IE의 설계를 부분 변경하기로 결정되었다.
이번 수정패치의 영향을 받는 대상은 눈에 보이는 UI를 가지며 사용자가 마우스나 키보드 입력을 통해 이벤트를 처리하는 상호작용 컨트롤에만 적용된다.
IE 기능변경 패치가 적용됨에 따라 웹페이지에 접속하는 사용자들은 웹페이지에서 <-object>, <-applet>, <-embed> 태그에 의해 로드되는 MS의 액티브X 컨트롤과 상호작용할 수 없게 되었다.
즉, 사용자가 이를 클릭해서 명시적으로 활성화(Activate)하기 전에는 사용자가 직접 상호작용 하는 것이 불가능하다.
상호작용 ActiveX 컨트롤이 사용자 입력에 즉시 응답하도록 웹 페이지를 생성하려면 외부 스크립트 파일에서 Microsoft JScript를 사용하여 컨트롤을 로드 해야한다.

동적으로 컨트롤을 로드하기 위해 document.write를 사용한다. 그래서 자바스크립트로 아래와 같은 함수를 만들어서 사용하게 되었다.

<-!--- 플래시 객체 로딩 함수 (플래시파일명, 가로크기, 세로크기) --->
function obj_swf(filenm, widthSWF, heightSWF) {
document.writeln('<-object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,22,0" width="' + widthSWF + '" height="' + heightSWF + '" align=middle name=img_1 VIEWASTEXT id=OBJECT1>');
document.writeln('<-param name="AllowScriptAccess" value="never"> ');
document.writeln('<-param name="quality" value="high">');
document.writeln('<-param name="bgcolor" value="#ffffff">');
document.writeln('<-param name="movie" value="' + filenm + '">');
document.writeln('<-param name=wmode VALUE=transparent>');
document.writeln('<-embed AllowScriptAccess="never" src="' + filenm + '" width="' + widthSWF + '" height="' + heightSWF + '" ><-/embed>');
document.writeln('<-/object>');
}

위 함수를 플래시가 삽입될 부분에서 호출 해서 사용한다

<-script>obj_swf('플래시파일명.swf',500,500);<-/script>




출처 : http://blog.naver.com/loudon23/30003260881 수정 약간.

(1 Comments) • (1 Trackbacks) • Permalink

Posted by armanianio minyoong on 2006.08.12 14:03