팝업은 기본스타일에서 뛰었을때 지정한 사이즈대로 잘 뜨게 된다.
하지만 XP 스타일일 경우 약간의 차이가 생긴다...
게다가 익스플로러 7 일경우는 옵션으로 주소표시줄과 상태바를 강제적으로 표시할 수도 있기 때문에
사이즈의 차이가 심하게 날때가 있다.
가로 사이즈는 별 이상이 없지만 세로 사이즈가 문제다...
그래서 전에는 보통 세로 사이즈를 좀 길게 해서 여기저기서 내용은 다 보이도록 했었는데
그리하다 보니 디자인도 별로고 그래서 안되겠다 싶어
한번 자바스크립으로 리사이징 스크립트를 만들어보았다.
우선 차이가 몇 픽셀이나 나는지 알아보았다.
다른 경우도 있을지 모르지만 우선 많이 쓰일만한 네가지만 알아보았다.
기본 스타일에서 세로를 100으로 뛰웠을때 실제로 내용 표시부분은 71이었다
뭐 그러니까 29의 차이가 기본이라는거다.
여기에서 xp스타일로만 했을 경우는 36
기본 스타일에서 주소표시줄과 상태바가 나올 경우 71
xp스타일에서 주소표시줄과 상태바가 나올 경우 80
값 나왔으니 해당 값과 비교해서 윈도우 리사이징 ㅋ
테스트해본 걸로는 제대로 동작은 하더라
뭐 숫자비교하고 리사이징만 하는거라 문제될건 없긴하지만....^^;;;;;;
//xp 스타일에 따라 팝업크기 자동변경
function resize_xpstyle(width, height)
{
var nDefaultGap = 29;
var nXpStyleGap = 36;
var nURLandStatusGap = 71;
var nAllGap = 80;
resizeTo(width, height);
if(document.body.clientHeight == height-nDefaultGap)
{
//기본 스타일이므로 변경 필요없음!
}
else if(document.body.clientHeight == height-nXpStyleGap)
{
resizeTo(width, height+(nXpStyleGap-nDefaultGap));
}
else if(document.body.clientHeight == height-nURLandStatusGap)
{
resizeTo(width, height+(nURLandStatusGap-nDefaultGap));
}
else if(document.body.clientHeight == height-nAllGap)
{
resizeTo(width, height+(nAllGap-nDefaultGap));
}
}
------------------------------------------------------------------------
몇가지 상태가 또 있어서..그상황을 추가한다해도...또 다른 상태가 없으란 법이 없기에...-0-;;;
위의 크기 비교해서 하는건 안되겠다.....
그래서 완전한 노멀팝업상태(xp스타일상태도 아니고 상태표시줄 주소표시줄 뭐 이런거 전혀없는...98이나 2000에서 뜨는 팝업 상태)의 크기를 지정하여 클라이언트 영역을 비교해보니..30픽셀 차이가 났다
그래서 무조건 클라이언트 영역을 기준으로 잡아 리사이징을 다시 하니..위 보다 깔끔하다..-0-;;;
//xp 스타일에 따라 팝업크기 자동변경 - 2007년 10월 19일
function resize_xpstyle(width, height)
{
var tmpHeight = height - 30;
var heightGap=0;
resizeTo(width, height);
if(tmpHeight != document.body.clientHeight)
{
heightGap = tmpHeight - document.body.clientHeight;
resizeTo(width, height+heightGap);
}
}