YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > ETC
검색
멤버이름    오토
비밀번호 
 

변경된 엑티브X 대응책

페이지 정보

작성자 MintState 댓글 0건 조회 9,074회 작성일 08-11-17 14:26

본문

변경된 엑티브X 대응책

MS에서 이올라스에대한 특허에대한 패소 판정을 받았습니다.
이올라스는 엑티브X에 대한 특허를 가지고 있고 MS에서 무단으로 사용한다는 것이죠.
이문제는 MS 뿐만아니라 다른 브라우져에도 적용이 될것 같습니다. 모질라, 오페라 등등..
MS가 크니 그쪽부터 법정싸움을 붙은 거겠죠!!

하여간 그로인하여 사용자는 엑티브X를 활성화 해주어야 되는 번거러움이 생겼습니다.
웹페이지상에서 플레쉬나 동영상 등등 많은 부분에서 활성화 시켜야 되는 것이죠.
머 클릭한번 더한다라는 생각도 있을 수 있지만

한국사람들이 어떤사람 들입니까? ㅡㅡㅋ 빠르고 참을성 없는 민족...

그래서 나온 방법이 자바스크립트를 이용하여 자동으로 활성화 시켜 주는 방법입니다.

1번째 방법 :
<script>
function openflash(width,height,src){ 
    return "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" width="+width+" height="+height+"><param name=movie value="+src+"><param name=\"allowScriptAccess\" value=\"sameDomain\"><param name=\"wmode\" value=\"transparent\"><param name=quality value=high ><param name=menu value=false><embed src="+src+" quality=high  pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\" width="+width+" height="+height+"></embed></object>"; 
} 

function writeflash(src){ 
    document.write(src); 
} 
</script>
<script>writeflash(openflash(600, 180, "./yesyo..swf"));</script>


2번째 방법 :
http://www.iezn.com/test/ie/
소스는 embed_patch.js
//////////////////////////////////////
// IE Embed patch
//
// @author iezn@iezn.com
// @homepage http://iezn.com
// @create date 2006.04.19
// @last modify 2007.02.15
// @version 0.42
// 배포시 위내용을 포함해 주시기 바랍니다
//////////////////////////////////////
/**
* embed 패치 적용 컨테이너
* null인경우 document 값을 기본으로 합니다
* id값을 설정한경우 설정범위 내에만 적용이 됩니다
* 
* 본문이나 일부 노드에만 적용할경우 해당 노드의 id 값을 입력하실 수 있습니다
* 예)
* var __embed_target_id = "contents";
* 로 처리한경우 body 내에 <태그 id="contents">플래쉬,동영상...</태그>
* 안에 내용에만 패치가 적용됩니다
*/
if(typeof(__embed_target_id)=='undefined'){
	var __embed_target_id = null;
}

/**
* embed 패치를 적용할 태그를 설정합니다
* 기본값은 object,eembed,appelt 태그입니다
* false 값인경우 패치에서 제외됩니다
*/
if(typeof(__embed_tags)=='undefined'){
	var __embed_tags = {object:true,embed:true,applet:false}
}

/**
* 플래쉬파일중 flashvars 를 사용할경우 해당 플래쉬의 오브젝트아이디:true 값으로 object를 등록해 주세요
*/
var __flash_force_objs = {};
if(navigator.userAgent.toLowerCase().indexOf('opera')==-1){//opera out
	if(document.attachEvent){
		document.write('<style type="text/css">');
		document.write('object,embed{display:none;}');
		document.write('</style>');
		document.attachEvent('onreadystatechange',
			function (){				
				if(__embed_target_id===null){
					var __target = document;
				}else{
					var __target = document.getElementById(__embed_target_id);
				}
				if (document.readyState == "complete"){
					function _replace(obj){
						var obj_re = document.createElement(obj.outerHTML);					
						obj_re.style.display='inline';
						obj.parentNode.replaceChild(obj_re,obj);
					}
					function _inner(obj){
						obj.style.display='inline';					
						var html = obj.outerHTML;
						var classid = obj.classid.toLowerCase();
						if(classid=='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' && typeof(__flash_force_objs[obj.id])=='undefined'){//flash 인경우
							obj.insertAdjacentHTML('beforeBegin',html);
							obj.parentNode.removeChild(obj);
						}else if(classid=='clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b'){
							//퀵타임

						}else{
							//변경하고자하는 ActiveX classid 를 추가하시기 바랍니다
							if(classid=='clsid:6bf52a52-394a-11d3-b153-00c04f79faa6' || //media 7
							classid=='clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95' || //6.4
							classid=='clsid:6bf52a52-394a-11d3-b153-00c04f79faa6' ||
							classid=='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'
							){
								embed_pos = html.indexOf('embed');
								if(embed_pos!=-1){//embed 가 존재하는경우
									var embed = '<'+html.substr(embed_pos);
									embed = embed.substr(0,embed.length-9);
									obj.insertAdjacentHTML('beforeBegin',embed);
									obj.parentNode.removeChild(obj);
								}else{
									//object로만 되어 있는경우 동영상 부분만 패치한다
									var embed = document.createElement('embed');
									if(obj.id){
										embed.id = obj.id;
									}
									var total = obj.childNodes.length;
									//embed.setAttribute('autostart',0);
									if(obj.width){
										embed.setAttribute('width',obj.width);
									}
									if(obj.height){
										embed.setAttribute('height',obj.height);
									}
									for(var k=0;k<total;k++){
										n = obj.childNodes.item(k).getAttribute("name");
										v = obj.childNodes.item(k).getAttribute("value");
										if(n=='URL' || n=='url' || n=='FileName'){
											n = 'src';
										}
										embed.setAttribute(n,v);
									}
									if(embed.getAttribute('src')){
										embed.style.display = 'inline';
										obj.parentNode.replaceChild(embed,obj);
									}else{
										//파일엑세스 object가 아닌경우는 유지한다								
									}
								}
							}
						}
					}

					if(__embed_tags.object===true){
						var objs = __target.getElementsByTagName('object');
						var i = objs.length;
						while(i-->0){
							_inner(objs[i]);
						}
					}
					if(__embed_tags.embed===true){
						var objs = __target.getElementsByTagName('embed');
						var i = objs.length;
						while(i-->0){
							_replace(objs[i])
						}
					}

					if(__embed_tags.applet===true){
						var objs = __target.getElementsByTagName('applet');
						var i = objs.length;
						while(i-->0){
							_replace(objs[i])
						}
					}
				}
			}
		);
	}
}
첨부 파일
파일 종류: rar activateActiveX.rar (2.3K, 40 views)
파일 종류: rar iezn_embed_patch.rar (3.7K, 0 views)

댓글목록

등록된 댓글이 없습니다.

Total 71건 1 페이지
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2024, YesYo.com MintState. ™