웹마스터 팁
page_full_width">
아래 새창에 맞게 이미지 띄우기 더더 업그레이드 판!
2002.12.09 20:53
1. 짤린 그림파일일때 메시지 띄우기
2. 너무 큰 (해상도보다 큰) 그림일 경우 작게 리사이즈 해서 보여주기 (그 후 원래 크기로 볼지 선택가능)
3. 기타등등 ..
[ps] 행복한고니님의 스크립트를 토대로 변형시켰음을 밝힙니다;
<script>
function imgPreview(img){
/* This Script by AT4u -/
/ EMail : atply@atply.com -/
/ HOME : http://atply.com -/
/ 배포시에는 절대로 이 카피라 -/
/ 트를 훼손하여선 안됩니다. */
// Orignal by 행복한고니(gonom9@empal.com)
var wdh ;
var hei ;
var T_Left;
var T_Top ;
var T_Wid ;
var T_Hei ;
var T_IsM ;
var T_IsMM;
var Temp = new Image();
Temp.src = img;
wdh = screen.width;
hei = screen.height;
if (Temp.width > wdh) {
T_Wid = wdh;
T_Left = 0;
T_IsM = 1;
} else {
T_Wid = Temp.width;
T_Left = (wdh - Temp.width) / 2;
}
if (Temp.height > hei) {
T_Hei = hei;
T_Top = 0;
T_IsM = 1;
} else {
T_Hei = Temp.height;
T_Top = (hei - Temp.height) / 2;
}
if (T_IsM) {
T_IsMM = "javascript:if (confirm('지금 보신 그림은 크기가 너무 커서 줄어든 그림입니다. 크게 보시겠습니까?nn확인 = 크게 보기, 취소 = 그냥 닫기')) { var ww = window.open('', 'AT4u_iPreBig', 'left=0,top=0,status=0,toolbar=no,scrollbars=yes,width="+(T_Wid + 17)+",height="+(T_Hei - 100)+",left="+T_Left+",top="+T_Top+"'); ww.document.writeln('+ '<HTML> <TITLE> Image Preview - Orignal Size </TITLE><STYLE> body {margin:0pt;} </style> <BODY><a href='javascript:self.close()'><img src='"+img+"' width="+Temp.width+" height="+Temp.height+" border=0></a></body></html>'); } self.close();";
} else {
T_IsMM = "javascript:self.close();";
}
var WindowT = window.open("","AT4u_iPre","width="+T_Wid+",height="+T_Hei+",left="+T_Left+",top="+T_Top+",status=no,toolbar=no,scrollbars=no,resizable=no");
WindowT.document.writeln("<HTML> <TITLE> Image Preview </TITLE><STYLE> body {margin:0pt;} </style> <BODY><a href=""+T_IsMM+""><img name='at4uPre' src='"+img+"' width="+T_Wid+" height="+T_Hei+" border=0 onerror="alert('그림 파일이 없습니다. 짤린 그림 파일 같습니다.'); self.close()"></a></body></html>");
}
</script>
2. 너무 큰 (해상도보다 큰) 그림일 경우 작게 리사이즈 해서 보여주기 (그 후 원래 크기로 볼지 선택가능)
3. 기타등등 ..
[ps] 행복한고니님의 스크립트를 토대로 변형시켰음을 밝힙니다;
<script>
function imgPreview(img){
/* This Script by AT4u -/
/ EMail : atply@atply.com -/
/ HOME : http://atply.com -/
/ 배포시에는 절대로 이 카피라 -/
/ 트를 훼손하여선 안됩니다. */
// Orignal by 행복한고니(gonom9@empal.com)
var wdh ;
var hei ;
var T_Left;
var T_Top ;
var T_Wid ;
var T_Hei ;
var T_IsM ;
var T_IsMM;
var Temp = new Image();
Temp.src = img;
wdh = screen.width;
hei = screen.height;
if (Temp.width > wdh) {
T_Wid = wdh;
T_Left = 0;
T_IsM = 1;
} else {
T_Wid = Temp.width;
T_Left = (wdh - Temp.width) / 2;
}
if (Temp.height > hei) {
T_Hei = hei;
T_Top = 0;
T_IsM = 1;
} else {
T_Hei = Temp.height;
T_Top = (hei - Temp.height) / 2;
}
if (T_IsM) {
T_IsMM = "javascript:if (confirm('지금 보신 그림은 크기가 너무 커서 줄어든 그림입니다. 크게 보시겠습니까?nn확인 = 크게 보기, 취소 = 그냥 닫기')) { var ww = window.open('', 'AT4u_iPreBig', 'left=0,top=0,status=0,toolbar=no,scrollbars=yes,width="+(T_Wid + 17)+",height="+(T_Hei - 100)+",left="+T_Left+",top="+T_Top+"'); ww.document.writeln('+ '<HTML> <TITLE> Image Preview - Orignal Size </TITLE><STYLE> body {margin:0pt;} </style> <BODY><a href='javascript:self.close()'><img src='"+img+"' width="+Temp.width+" height="+Temp.height+" border=0></a></body></html>'); } self.close();";
} else {
T_IsMM = "javascript:self.close();";
}
var WindowT = window.open("","AT4u_iPre","width="+T_Wid+",height="+T_Hei+",left="+T_Left+",top="+T_Top+",status=no,toolbar=no,scrollbars=no,resizable=no");
WindowT.document.writeln("<HTML> <TITLE> Image Preview </TITLE><STYLE> body {margin:0pt;} </style> <BODY><a href=""+T_IsMM+""><img name='at4uPre' src='"+img+"' width="+T_Wid+" height="+T_Hei+" border=0 onerror="alert('그림 파일이 없습니다. 짤린 그림 파일 같습니다.'); self.close()"></a></body></html>");
}
</script>
댓글 6
-
디아릭스
2002.12.16 01:40
-
한상욱
2003.01.05 21:47
그런데 한가지 문제가 있는듯 하네요..
포토샵에서 자동 앨범 만들기 기능을 한후에.. 작은이미지를 클릭하면 이미지 크기에 맞는 창으로 이미지를
띄우게 하려 했답니다..
위에 설명하신데로 했는데.. 이상한게 있네요..
작은이미지를 클릭하면 처음엔 화면가득 큰창 하나만 덩그러니 열리네요.
큰창 지우고 다시 방금전 클릭했던 작은 이미지를 클릭하니.. 재대로 열리는군요..
모든이미지들이 한번씩 그렇습니다...
처음눌렸을때는 큰창..(에러)... 다시 반복하면 정상...
왜 그럴까요? -
정지웅
2003.01.10 17:04
맞아여 이 기능 에러 있는기능인듯하네여... 결정적인 에러라서 쓸수가 없네여...
한상욱님 말처럼 첨에 큰창이 한번 떴다가 그창닫고 두번째 시도할때 부터 제대로 떠여... 져도 밑에 답글 올렸는데..
대답도 안해주시네여... 멜 까지 보냈는데 에러이다고..
해결이 안되나 보죠... -
김두영
2003.06.20 03:22
에러났을때 페이지 소스에서
Temp.width 나 Temp.height 값이 0으로 셋팅되더군요.
근본적인 해결책은 될 수 없지만 아니지만 공백페이지가 뜨는 것을 방지하게 하려면
var Temp = new Image();
Temp.src = img;
다음라인에
if (Temp.width == 0 ) return;
하시면 사용자가 한번 더 클릭 하면 제대로된 화면이 뜰겁니다.
제 생각은 함수값 넘겨주는부분 아니면, 인자생성시에 문제가 있지 않을까 합니다. -
띠엠므
2003.05.16 10:51
아래 행복한 고니님의 소스를 쓰려다가 여기에도 같은 문제가 발생하네요. 다들 같은 문제로 고민하시는 것 같은데
만들어 주신분들, AS좀 부탁드림 안될까영 ? ^^;
첨엔 이상하케 큰 공백으로 뜨다가 담부턴 정상적으로 뜨는 둥 불규칙적이게 공백이 뜨는 둥 자꾸 그러답니다. ^^ -
고냉이 콱!
2003.06.03 01:21
저도 같은오류 ㅡ.ㅡ 한번 불러들였던 이미지가 아니라면 빈 창으로 뜹니다
근데 무지 길군요.
암튼 감사히 쓰겠습니다.