정말 IE8 은 골치 아픈 브라우저가 아닌가 싶다. 유독 혼자만 튀고 싶은 MS의 성격을 그대로 가지고 있는 듯 하다.

분명 브라우징 속도는 빨라진 듯 같다(하지만 MS에서 말하는 것처럼 다른 브라우저보다 빠르다는 느낌은...-_-a)

웹표준을 지향한다던 IE8, 하지만  호환성 테스트 중 최하위..더군다나 이전 버젼의 IE 나 타 사의 브라우저에는 정상적으로

작동하는데 유독 IE8에서만 동작이 안되는 페이지들도 있다. IE8만의 웹표준은 아닐까?

 

여하튼 ExtJS를 통해 개발하면서 발견한 또하나의 버그?

 

위 그림처럼 텍스트상자의 상단 부분의 외곽선이 보이지 않는다.

확인해 보니 2.x 버젼의 ExtJS를 사용한 경우 IE8에서만 발생하는 문제였다.

해결 방법은  

.ext-ie8 .x-form-text{
    margin: 0px 0px;
}

.ext-ie8 .x-form-trigger{
    top: 1px;
}

 을 추가해 주면 된다.

 

 

IE7에서의 파일(excel등) 다운로드 이상

기타 | 2008. 1. 16. 11:50
Posted by 시반

1. execCommand('SaveAs') 의 차단

 

IE6에서는 javascript로 문서를 저장시 execCommand('SaveAs')를 사용할수 있었다.
html, text뿐만 아니라 execCommand("SaveAs","false","test.xls")이런 방법으로 Table을 엑셀파일로도 저장할 수 있었던 것.
하지만 IE7부터는 execCommand등의 몇몇 메소드에 대하여 제한을 두고 있기 때문에 더이상 이런방법으로

엑셀형태로 다운로드 할 수 없게 되었다.(html,text 파일로는 저장이 된다고 하네요...)

 

 

2. context-type 설정을 통한 파일 다운로드의 제한

 

다른 방법으로 엑셀파일로 다운로드 하고자 할때 다음과 같은 헤더를 사용한다.

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=test.xls");
header("Content-Description: PHP4 Generated Data");

 

그렇게 되면 헤더를 먼저 뿌려주고, 데이터를 출력해서 엑셀형태로 다운받게 된다.

그런데, 위와 같은 동일한 코드에서 IE6 에서는 정상적으로 다운로드 받지만,
IE7 에서는 다운받지 못하는 현상이 있다.


##########0*

 

위와 같이 다운로드를 시도하는데, 끝내 다운받지 못한다.

흐음 이부분은 해결방법이 상당히 묘하다. 그말은 딱히 정확한 원인을 알수 없다는 것이다.

정책상의 변화로 인한 파일 다운로드문제인지 다른 문제인지..

 

왜냐하면 내 경우에는 모달창에서 검색된 로그나 상태값을 엑셀로 저장하고자 할때 위와 같은

문제가 발생했지만 다른  pc에서는 이상없이 다운로드 되었기 때문이다.

모달창이 아닌 메인창에서 호출하거나 새창으로 연 경우에는 동일코드로 이상없이 작동되었다.

 

모달창의 경우엔 그외에도 새창으로 열기에서는 발생하지 않았던 ocx등의 오동작등이 보이는걸보면

모달창에 대한 정책변경이 있었던 듯 싶지만. 관련된 정보는 확인할 수 없었다.

 

한글명의 경우 XP의 IE7은 고급택스트서비스와의 충돌로 인하여 위와 같은 현상이 발생할 수도 있다고한다.

(아니면 나와 같이 3벌식을 쓰는 경우이거나..이땐 대책없다.ㅋㅋ)

즉 vista의 IE7인 경우 정상적 작동

이에 대한 해결방법은  [제어판] - [국가 및 언어] - [언어] 자세히 -

 [텍스트 서비스 및 입력언어창] - [고급] 선택 - [고급텍스트 서비스 사용안함] 선택

을 통해서 해결할 수 있다

 

3. 해결?

일단 앞서 말한바와 같이 모든 경우에 동일한 결과가 나타나지 않을 뿐더러 원인에 따라 해결방법이 있기도 없기도 하다는

점이 문제다. 2.번의 경우 jsp가 아닌 서블릿으로 처리하는 경우 대부분 이상없이 다운로드 받을 수 있었다.

아니면 jxl을 통해 파일을 생성후 다운로드 받도록 하는 방법도 생각해 볼만하다.

 

IE7 주소줄없애기

기타 | 2008. 1. 16. 11:14
Posted by 시반

앞서 말한바 있지만 IE7에서는 새창으로 열거나 모달창으로 여는경우 주소창이 항상 보이게 된다.

여러가지 이유로 모달창을 사용해야만 했던 경우에 보여지는 주소줄땜시 대략 난감한 경우가 많았는데.

개발자 단위로 이를 해결할 수 없다는 사실이 가슴아프다.

여하튼 브라우저상에서의 해결방법은 다음과 같이 보안설정부분을 변경해주면 된다.

 

 
'사용'으로 지정하면 된다.
 
또는 첨부된 레지스트리를 실행해도 된다고 하는데 확인을 해보질 않아서리..
 
속편히 인터넷옵션상의 변경으로 처리하는게 속편할듯...
 
 
 
 

IE 7 에 따른 이슈사항들

기타 | 2008. 1. 16. 10:54
Posted by 시반

IE7.0 에따른 이슈사항들

 

작년부터 알고는 있었고 나름 대처를 하긴 했지만 가끔씩 나타나는 문제들 때문에 골치가 아프다...

일단 정리부터.... 

 

1. window.status

window.status 코드가 인터넷 영역에서 실행되지 않는다.

 

function test() {

    window.status = 'Hi!';

}

 

단 로컬에서는 된다. 즉 로컬에 저장된 html을 실행하면 window.status가 적용되지만

인터넷에 있는 window.status는 반영되지 않는다.

 

2. <base>태그

HTML3.2 스펙에 따라 <base>태그는 반드시 <head></head>에 위치해야 한다.

그렇지 않으면 인식하지 않는다네요

얼마전에도 이것땜시 모달창에서 문제가 있었는데..그때 기억이 새록새록...-_- 

 

3. window.close()

window.close()시 나타나는 프롬프트를 회피하기 위해 window.opener 를 사용했었는데

더이상 아래 코드는 먹지 않고 창을 닫겠냐는 프롬프트가 뜨게 됩니다

 

window.opener=top;

window.close();

or

self.opener = self;
window.close();

 

4. _search

_search를 통해 검색창을 더이상 열지 못한다.

<a href="">Test Sidebar</a>
 


 

 

5. window.prompt()

디폴트로 block 된다.


 

 

6. 제한되는 메쏘드들

 

 

execCommand

clipboardData.getData()

clipboardData.setData()

clipboardData.clearData()

 

클립보드 저장, 및 클립보드 데이터 가져오기 등의 메쏘드들이 제한된다. (보안경고창)

MS에서는 clipboardData 객체 사용을 권고하지 않습니다

 

7. Modal 및 Modeless Dialog 크기가 변경!


덕분에 브라우저마다 보여지는 모달창의 여백이 T_T

사이즈를 지정시 기존의 경우 창크기를 의미했으나 IE7에서는 content 크기만을 의미합니다

모달창이 커졌네..첨엔 멋모르고 사이즈 조정했다가 다른 브라우저에서는 밑에가 짤렸다는...

브라우저 체크해서 사이즈를 조절하면 되겠지만 귀차니즘땜시...기냥 늘려서 사용중...

 

 

8. 새창으로 뜰때 주소줄 보임

더이상 새창을 window.open 의 property 특성으로 조절할 수 없다

무조건 주소창이 나타나게 된다.

 


 

이 문제는 개인 사용자별 [도구] - [인터넷옵션] - [보안] - [인터넷]영역 - [사용자지정수준]
[보안설정-인터넷영역] - [기타] - [웹사이트에서 주소 또는 상태표시줄 없이 창을 열도록 허용] - [사용]

을 통해서 해결할수 있고 레지스트리를 수정해서도 가능하다고 들었는데 아직 잘 모르겠다.

여하튼 이문제는 클라이언트에게 그 문제를 해결할 것을 요청하게 되는것이라

7번의 문제와 더불어 고민을 안겨준다..

 

9. window.resizeTo()

window.resiztTo 함수는 에러가 발생하거나 차단된다.

 
function changeSize(){
    window.resizeTo(1024,768);
}
 

 하지만 이건 IE6에서도 가끔 안되던 문제라서...잘...

 

10. HTTP, HTTPS 혼합된 인터넷 영역에서 보안 경고가 발생합니다

 

 

11. SELECT가 windowed element로 개선

이전까지는 SELECT Element가 Windowsed Element였기 때문에

다른 element와 달리 별도의 MSHTML pane에서 rendering되었다.

즉 SELECT가 그림과 같이 layer들을 가리게 되었는데, IE7부터는 그러지 않는다는 이야기

것땜시 사이즈 및 화면디자인부분에 신경을 많이 썼었는데 편해진듯...싶지만

 


 

12. 스크립트 차단

IE6까지는 아래 코드가 실행되어 보안에 매우 취약했지만 IE7 부터는 아예 실해이 안된다고 한다. (XSS)

FF 2.0 도 실행이 안되는군요 ^^

 <img src="javascrip t:alert('a')">
 

13. CSS

100%는 아니지만 CSS2.1 표준 구현 강화가 되었습니다

또한 <a> 태그에서만 가능했던 :hover나 background-attachment: 가 모든 태그에서 사용가능해 졌다

 

이밖에도 알려진 버그로는 "신뢰할수 있는 사이트"에 추가를 했는데도, 보안창이 뜬다든가,

flash에서 _blank로 새창을 열면 자기 자신창에서 열린다든가 하는 버그가 있다고 한다.

 

이렇게 주저리주저리 쭈욱 나열했지만

문제는 같은 IE7이라 하더라도 xp와 vista에서의 보안정책이 달라서인지 각기 다른 버그들이 생겨난다는 것이다.

탭기능 등이 추가된 것은 좋지만.

vista에서는 보안성강화라는 측면을 무시할순 없지만 사용자편의성은 무시하고 있는게 하는 생각을 들게 만든다.

 

 

 

흐음 익스플로어 7을 새로 깔았더니 모달다이얼로그창에서 submit 을 한 경우 그 결과 페이지가 새로운창에서 뜨고 있다는 걸 발견했다.

이상하네.. 왜 그러지...

target 만 _self로 주면 되는게 아니었나?

이제껏 잘 돌아가던거였구 소스상에서도 <base target="_self"> 구문이 있다는 사실을 알았는데

유독 그 페이지만 그런 문제가 발생하다니...이상한 일...

 

고민 또 고민.. 헌데...

 

익스플로어7에서는 <base target="_self"> 구문이..

반드시 head안에 들어가 있어야 한다는 사실을 알게 되었다.

 

즉 body 태그 아래 적어두었던 <base target="_self">구문은 적용이 되지 않았던 셈...

 

다른 페이지의 경우 ajax등을 사용해서리 어차피 데이타 처리는 그 페이지 안에서 처리가 되기 때문에

다른페이지는 이상이 없었지만 ajax로는 구현이 안되는(내가 알기로는...) 첨부파일 전송페이지였기 때문에..

그런 일이 발생한 거였다...

 

하지만 중요한것은  body 태그 안에 그 구문을 넣어야 한다고만 알고 있었던 내 자신이었다.

이제껏 당연히 되어왔기에 당연히 그게 옳은 것이라고 생각했던 그래서 당연한 것인양 사용해왔기에 더더욱 쓰리다...

 

기초(?)의 소중함을 다시금 깨달을수 있었던 오늘의 헤프닝~~~

 
블로그 이미지

시반

시반(詩伴)이란 함께 시를 짓는 벗이란 뜻을 가지고 있습니다. 함께 나눌수 있는 그런 공간이길 바라며...

카테고리

분류 전체보기 (233)
개발 이야기 (73)
WEB2.0 (57)
DB2 (24)
MySQL (6)
오라클 (26)
기타 (44)
취미 (0)
잡담 (2)