IE7 호환성 문제에 대한 해결방법

장덕환 2009.01.31 13:41:38

Q. 특정 사이트를 방문하면 페이지 내의 한글이 깨지는 현상이 발생.
A.원인: Web Server와 IE7이 통신할 때 텍스트 encoding이 서로 맞지 않을 경우 발생
→ 해결방안: Web Server의 텍스트 encoding을 UTF-8로 설정하고 웹 페이지 소스의 텍스트 인코딩을 UTF-8로 설정

Q. 로컬 PC의 이미지를 웹 페이지에 업로드 할 경우 이미지 미리보기에서 이미지가 정상적으로 표시되지 않는 현상 발생.
A.원인: IE7에서 강화된 로컬 리소스 접근 제한이라는 보안 기능 때문에 발생하는 것으로 로컬 PC의 이미지, 스크립트, 객체에 대해서 업로드를 받지 않고 접근할 경우에는 차단됨.
→ 해결방안: 해당 객체를 서버의 임시저장소로 업로드 후 처리하는 방식으로 변경

Q. Base 태그의 위치에 따라 페이지의 링크가 동작하지 않는 현상이 발생.
A.원인: IE7에서는 HTML 표준을 준수하므로 <BASE> 태그의 위치를 표준에 따라 위치시켜야 함.
→ 해결방안: HTML 표준 규약 중 <BASE> 태그는 반드시 <HEAD>….</HEAD>태그 사이에 위치해야 하므로 이에 맞게 해당 태그의 위치를 수정

Q. IE7에서의 주소표시줄이 항상 보이는 현상
A.원인: IE7에서는 사용자에게 현재 보고있는 웹 페이지가 어느 위치의 페이지 인지를 알려주어 사용자로부터 해당 페이지의 신뢰성 여부를 제공하고자 하므로 모든 웹 페이지에서는 항상 주소 표시줄을 표시하도록 설계됨.
→ 해결방안: 특정 개발 방법을 이용하여 주소표시줄을 없애는 방법은 현재 제공하지 않고 있으나, 사용자가 신뢰할 수 있는 웹 페이지에 대해서 주소 표시줄을 없애고자 한다면, 해당 페이지의 주소를 인터넷 옵션의 신뢰할 수 있는 사이트 영역에 추가하여 주소 표시줄의 표시 여부를 설정할 수 있음.

Q. Clipboard를 접근하려는 동작이 있을 경우 경고 창이 뜨는 현상
A.원인: 사용자 ID나 Password 상자에 입력된 정보가 페이지의 스크립트로 접근이 될 경우 타 시스템이나 악의적으로 전송이 될 수 있으므로 항상 clipboard를 접근하는 동작이 있을 경우 이를 사용자에게 알리고 접근을 허용할 지에 대한 여부를 묻게 됨.
→ 해결방안: 사용자에게 clipboard에 대한 접근 경고의 취지를 설명하고 사용자가 해당 경고창에서 동작을 허용할 지에 대한 여부를 선택하도록 안내 필요.

Q. 웹 페이지의 하단이 잘려서 표시되지 않는 현상
A.원인: IE7은 CSS 표준을 준수하므로 IE6와는 달리 웹 페이지의 Height값이 CSS에 명시되어 있을 경우 이 보다 더 큰 컨텐트가 삽입될 경우 해당 Height 값 만큼만 표시가 됨. Resizeto 함수의 사용제한이 걸림 (동일하지 않는 영역에 대해 제한됨)
→ 해결방안: 프레임이나 페이지에 표시할 컨텐트 높이만큼 CSS에 Height 값을 조정해야 함.

Q. 게시자가 없는 ActiveX의 경우 설치 할 수 없는 현상 발생
A.원인: ActiveX의 서명이 되지 않았거나, 올바르지 않은 게시자로 서명이 되었을 경우 ActiveX의 보안 강화에 의해 설치가 차단됨.
→ 해결방안: 공인인증서를 통한 ActiveX 배포 패키지의 서명 및 재 배포 필요.

Q. 스크립트릿을 사용하여 구성한 달력 콘트롤이 정상적으로 표시되지 않는 현상 발생
A.원인: IE7의 보안강화로 스크립트릿을 사용한 페이지에 대해 동작이 차단이 됨
→ 해결방안: 달력 콘트롤의 기능 재 구현 (스크립트릿을 사용하지 않는 방식으로 수정). 인터넷 옵션에서 스크립트릿 사용 항목을 활성화 시켜서 완화가능

Q. window.close() 함수를 사용하여 페이지를 닫을 경우 사용자 동의를 구하는 대화상자가 나오는 현상 발생
A.원인: window.close() 함수의 악용을 방지하기 위해 IE7에서는 해당 함수 호출 시 반드시 사용자 동의를 구하도록 설계됨
→ 해결방안: 페이지내의 스크립트로 해당 페이지를 사용자 동의 없이 닫을 수 있는 방법을 제공하지 않으므로 사용자에게 해당 증상에 대한 안내 필요.

Q. https 컨텐트 페이지에서 http 컨텐트를 표시 할 수 없는 현상 발생
A.원인: 보안을 강화할 목적으로 https로 구성한 페이지인 만큼 해당 페이지에서는 비 보안의 http 컨텐트를 차단하도록 설계를 변경하였음.
→ 해결방안: https 페이지 내의 모든 컨텐트는 https로 구성하도록 변경

Q. 특정 https 사이트 접근 시 웹 페이지를 표시할 수 없습니다 라는 메시지가 표시되는 현상
A.원인: SSL2.0이 보안에 취약점이 있어서 IE7에서는 SSL2.0 기반의 사이트에 대해서 기본적으로 접근을 제한함.
→ 해결방안: SSL3.0이나 TLS2.0 기반의 사이트로 수정 필요.

Q. 특정 https 사이트 접근 시 웹 사이트 인증서에 문제가 있다는 메시지가 표시되는 현상 발생
A.원인: IE7은 https 사이트 접근 시 인증서의 유효기간 및 인증서의 명시된 URL을 대조하는 기능이 있어 인증서의 유효기간이 만료가 되거나 인증서의 URL과 실제 사이트의 URL이 다를 경우 인증서 경고 메시지를 표시함.
→ 해결방안: 인증서의 유효기간과 서비스 URL을 확인하여 적합하게 수정

Q. 서로 다른 도메인의 컨텐트가 하나의 페이지에 프레임 내에서 표시가 될 경우 새로운 창으로 뜨는 현상 발생
A.원인: IE7의 교차 도메인 스크립팅 차단이라는 보안 기능으로 인해 발생한 문제로서 서로 다른 도메인간의 스크립팅은 차단됨
→ 해결방안: 도메인의 접미사가 같은 경우에는 <script document.domain=”aaa.com”></script>로 해결이 가능하지만, 도메인 접미사가 다른 경우에는 새 창으로 뜨도록 구성을 변경해야 함.

Q. 팝업 창의 width가 250 이하로 되지 않는 현상 발생
A.원인: IE7에서는 팝업창의 최소 사이즈를 height=150px, width=250px로 제한이 되어있어서 이 보다 낮은 사이즈로 팝업을 열 경우 기본 값으로 설정되어 팝업이 열림
→ 해결방안: 위 사이즈를 준수하여 팝업이 열리도록 프로그램 수정 필요

Q. Zoom In/Out 시 특정 콘트롤 영역에 대해서는 Zoom 작동 시 영역이 틀어지거나 깨지는 현상 발생
A.원인: radio 버튼이나 check 박스와 같은 콘트롤은 layout상에 label 텍스트가 길 경우 오버가 되어 표현될 수 있다.
→ 해결방안: 해당 콘트롤의 태그를 <SPAN></SPAN> 태그로 감싸면 정상적으로 보임