1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
| function mw_image_window(img, w, h) { //이미지 url을 가지고 새로운 이미지 객체를 생성해주는 내부 함수. function newImg(url) { var i = new Image; i.src = url; return i; }
//width 또는 height의 값을 전달 받지 않았을 경우 이미지의 원래크기로 세팅 if (!w || !h) { if( 'naturalWidth' in (new Image)) { //Image객체에 naturalWidth 의 프로퍼티가 있을경우 var w = img.naturalWidth; //이미지의 원래 가로크기 var h = img.naturalHeight; //이미지의 원래 세로크기 }else { //전달 받은 이미지 주소를 가지고 새로운 이미지객체 생성 //새로 생성된 이미지 객체를 통해서 이미지의 원래크기를 구함. var w = newImg(img.src).width; var h = newImg(img.src).height; } } //img.src= img.src.replace("/thumbnail", "");
var winl = (screen.availWidth-w)/2; var wint = (screen.availHeight-h)/3;
var winW = w; var winH = h;
//이미지크기가 화면의 크기보다 클경우 처리 if (winW > screen.availWidth) { winl = 0; winW = screen.availWidth - 43 } if (winH > screen.availHeight) { wint = 0; winH = screen.availHeight - 83 }
console.log("============================="); console.log("ImgWidth: "+w+"/ImgHeight: "+h); console.log("winWidth: "+winW+"/winHeight: "+winH); console.log("winleft: "+winl+"/wintop: "+wint); console.log("=============================");
var js_url = "<script language='JavaScript1.2'> \n"; js_url += "<!-- \n"; js_url += "var ie=document.all; \n"; js_url += "var nn6=document.getElementById&&!document.all; \n"; js_url += "var isdrag=false; \n"; js_url += "var x,y; \n"; js_url += "var dobj; \n"; js_url += "function movemouse(e) \n"; js_url += "{ \n"; js_url += " if (isdrag) \n"; js_url += " { \n"; js_url += " dobj.style.left = nn6 ? tx + e.clientX - x : tx + event.clientX - x; \n"; js_url += " dobj.style.top = nn6 ? ty + e.clientY - y : ty + event.clientY - y; \n"; js_url += " return false; \n"; js_url += " } \n"; js_url += "} \n"; js_url += "function selectmouse(e) \n"; js_url += "{ \n"; js_url += " var fobj = nn6 ? e.target : event.srcElement; \n"; js_url += " var topelement = nn6 ? 'HTML' : 'BODY'; \n"; js_url += " while (fobj.tagName != topelement && fobj.className != 'dragme') \n"; js_url += " { \n"; js_url += " fobj = nn6 ? fobj.parentNode : fobj.parentElement; \n"; js_url += " } \n"; js_url += " if (fobj.className=='dragme') \n"; js_url += " { \n"; js_url += " isdrag = true; \n"; js_url += " dobj = fobj; \n"; js_url += " tx = parseInt(dobj.style.left+0); \n"; js_url += " ty = parseInt(dobj.style.top+0); \n"; js_url += " x = nn6 ? e.clientX : event.clientX; \n"; js_url += " y = nn6 ? e.clientY : event.clientY; \n"; js_url += " document.onmousemove=movemouse; \n"; js_url += " return false; \n"; js_url += " } \n"; js_url += "} \n"; js_url += "document.onmousedown=selectmouse; \n"; js_url += "document.onmouseup=new Function('isdrag=false'); \n"; js_url += "function resizeWindow(){ \n"; js_url += " var fullHeight = screen.availHeight; \n"; js_url += " var fullWidth = screen.availWidth; \n"; js_url += " var imgWidth = "+ (w + 43) + "\n"; js_url += " var imgHeight = " + (h + 83) + "\n"; js_url += " if (imgWidth > fullWidth) { \n"; //js_url += " window.moveTo(0,0); \n"; js_url += " imgWidth = fullWidth; \n"; js_url += " } \n"; js_url += " if (imgHeight > fullHeight) { \n"; js_url += " imgHeight = fullHeight; \n"; js_url += " } \n"; js_url += " window.resizeTo(imgWidth, imgHeight); \n"; js_url += "} \n"; js_url += "window.onload = function(){ \n"; js_url += " resizeWindow(); \n"; js_url += " document.oncontextmenu = function (){return false;}; \n"; js_url += " document.ondragstart = function(){return false;}; \n"; js_url += " document.onselectstart = function(){return false;}; \n"; js_url += "} \n";
js_url += "//--> \n"; js_url += "</"+"script> \n";
var settings; //새창의 옵션을 저장할 변수
//케코 레이아웃 엔진을 사용하는지 여부 var is_gecko = navigator.userAgent.toLowerCase().indexOf("gecko") >= -1; var settings;
if (is_gecko) { settings ='width='+(winW+10)+','; settings +='height='+(winH+10)+','; } else { settings ='width='+winW+','; settings +='height='+winH+','; } settings +='top='+wint+','; settings +='left='+winl+','; settings +='scrollbars=no,'; settings +='resizable=yes,'; settings +='status=no';
win=window.open("","image_window",settings); win.document.open(); win.document.write ("<html><head> \n<meta http-equiv='imagetoolbar' CONTENT='no'> \n"); win.document.write ("<meta http-equiv='content-type' content='text/html; charset=UTF-8'>\n"); var size = "이미지 사이즈 : "+w+" x "+h; win.document.write ("<title>"+size+"</title> \n"); if(w >= screen.width || h >= screen.height) { //이미지 크기가 화면보다 더 클경우 리사이즈 및 드래그할수있는 스크립트 추가 win.document.write (js_url); var click = "ondblclick='window.close();' style='cursor:move' title=' " +size+" \n\n 이미지 사이즈가 화면보다 큽니다. " +"\n 왼쪽 버튼을 클릭한 후 마우스를 움직여서 보세요. \n\n 더블 클릭하면 닫혀요. '"; } else var click = "onclick='window.close();' style='cursor:pointer' title=' "+size+" \n\n 클릭하면 닫혀요. '"; win.document.write ("<style>.dragme{position:relative;}</style> \n"); win.document.write ("</head> \n\n"); win.document.write ("<body leftmargin=0 topmargin=0 bgcolor=#dddddd style='cursor:arrow;'> \n"); win.document.write ("<table width=100% height=100% cellpadding=0 cellspacing=0>"); win.document.write ("<tr><td align=center valign=middle>"); win.document.write ("<img src='"+img.src+"' width='"+w+"' height='"+h+"' border=0 class='dragme' "+click+">"); win.document.write ("</td></tr></table>"); win.document.write ("</body></html>"); win.document.close();
if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
} |