MS의 금번 패치의 핵심은 OBJECT의 활성화를 위해서는 반드시 외부파일(js등)을 이용하여 document.write를 하여야 한다는 겁니다.
쉬프트의 가이드는 html파싱단계에서 해당 오브젝트를 활성화 시키는 단계를 외부 js파일에서 실행하도록 하는겁니다.
하나의 html파일내에서 document.write를 하는것은 결국은 MS의 저작권에 대한 사용방법에 저촉이 되는것이므로 정상적인 작동을 하지 않는것입니다.
이는 MS뿐만아니라 쉬프트의 가이드에서도 분명히 가이드를 하고 있는 부분입니다.
해결방안을 가이드 하자면, document.write하는 부분을 이러한 방법으로 변경해보시기 바랍니다.
원본 html파일은
ls_inner = "<OBJECT> ... </OBJECT>";
f_write(ls_inner);
외부 js파일에는
function f_write(html) {
document.write(html);
}
이러한 방식으로 하시면 됩니다.
즉, 원리는 오브젝트를 write를 하는것을 다른 파일에서 하여야 한다는 겁니다.
이와 관련된 가이드는 저의 게시판의 22번글이나, MS의 가이드를 자세히 살펴보시기 바랍니다.
>게시판을 이용해 주셔서 감사합니다.
>다음양식에 맞게 입력해주세요.
>
>* 고객시스템명 :
>* TOInB 버전 : 5.0
>* 서버 Platform : unix.
>* 문의 유형(질문/요청/참조) :
>* 내용 :
>
>이번 이올라스 - ms 특허분쟁 때문에 갑자기 이게 뭐하는 건지.. 암튼.. 이곳 가이드를 참조를 해서
>저희 시스템내에 있는 모든 웹페이지를 수정하였습니다..
>
>그런데 예상했던 문제 인데 결국은 현실로 되었는데요..
>
>HTML내에 있는 object들은 잘 반영이 되었는데..
>
>가끔 스크립트내에서 스트링변수에 담아놓고 innerHTML을 써서 object들을 선택하게 해놓은게 있습니다..
>
>이부분에서는 가이드에 나와있는 방식대로 처리가 할 수 없는데 간단히 해결할 팁 어디 없을까요?
>
>innerHTML 방식을 안쓰고 한다면 할 수 있는데 그러면 많은 소스 수정이 불가피 해서 혹시나 해서 방법이 있을까
>
>물어봅니다..
>
>
>=====================================
>원본 ->
>ls_inner+="<!--MEdit Component-->";
>ls_inner+="<OBJECT id=tbme_fyymm classid=clsid:5FBAE1CD-A276-11D3-AF84-00C026DC3D95";
>ls_inner+=" style='position:relative; heigth:20px; LEFT:0px; TOP:6px; width:75px; font-size:10pt' >";
>ls_inner+=" <param name='Format' value='0000.00;0'>";
>ls_inner+=" <param name='Align', value=1>";
>ls_inner+=" <param name='Enable' value=1>";
>ls_inner+=" <param name='DisabledBackcolor' value='#E4E4E4'>";
>ls_inner+="</OBJECT>";
>
>변경후 ->
>ls_inner+="<!--MEdit Component-->";
>ls_inner+="<comment id=__object3><OBJECT id=tbme_fyymm classid=clsid:5FBAE1CD-A276-11D3-AF84-00C026DC3D95";
>ls_inner+=" style='position:relative; heigth:20px; LEFT:0px; TOP:6px; width:75px; font-size:10pt' >";
>ls_inner+=" <param name='Format' value='0000.00;0'>";
>ls_inner+=" <param name='Align', value=1>";
>ls_inner+=" <param name='Enable' value=1>";
>ls_inner+=" <param name='DisabledBackcolor' value='#E4E4E4'>";
>ls_inner+="</OBJECT></comment><script language=javascript>__gf_ilips__(__object3);</script>";
>
>마지막 </script>"; 부분은 에러가 나기때문에 </scr" + "ipt>"; 로도 해봤는데
>오브젝트 인식 자체를 안하네요...
>