그림 파일 두개 이상 첨부시 새창 고정되는거 풀기 정보
그림 파일 두개 이상 첨부시 새창 고정되는거 풀기본문
만약 그림파일이 두개 이상 첨부되고 글 읽기를 하면
처음 그림 이미지를 클릭하면 팝업이 뜹니다. 이후 팝업을 닫지 않고
두번째 이미지를 클릭하면 처음 이미지 팝업 크기에 그대로 그림만 바뀌죠!!
즉 두번째 이미지의 싸이즈가 적용이 되지 않습니다. 별로 신경 쓰지 않았는데
오늘 유독 신경 쓰이더군요.
게시판에서는 function image_window3(img_src, w, h) 라는 함수로 팝업을 띄우는데
여기 안에 보면 win 이라는 변수로 팝업을 window.open 합니다.
win 이라는 변수를 전역으로 잡고 다음 팝업시 win이라는 변수에 값이 있다면
win.close() 하시면 됩니다.
다음은 바뀐 소스 입니다. 참고 하세요.
혹시 중복일꺼 같다는 생각이???? 저만 이런 생각하지 않았겠죠????
--------------------------------- b4.common.js ------------------------------------------------
var win; // 전역으로 잡기
if (typeof(B4_COMMON_JS) == 'undefined') { // 한번만 실행
var B4_COMMON_JS = true;
// 곱슬최씨님의 mw_image_window를 이름오류 안나게 이름만 변경
function image_window2(img, w, h)
{
if (!w || !h)
{
var w = img.tmp_width;
var h = img.tmp_height;
}
var winl = (screen.width-w)/2;
var wint = (screen.height-h)/3;
if (w >= screen.width) {
winl = 0;
h = (parseInt)(w * (h / w));
}
if (h >= screen.height) {
wint = 0;
w = (parseInt)(h * (w / h));
}
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 += "//--> \n";
js_url += "</"+"script> \n";
// zzzz님이 알려주셨어요. 감솨 ^^
var j1_url = "<script language='JavaScript1.2'> \n";
j1_url += "<!-- \n";
j1_url += "function _ReSize() { ";
j1_url += " $get = document.getElementById('_img').style; ";
j1_url += " var ratio = document.getElementById('_img').width / document.getElementById('_img').height; ";
j1_url += " $get.width = document.body.clientWidth; ";
j1_url += " $get.height = document.body.clientWidth / ratio; ";
j1_url += " setTimeout('_ReSize()', 100); ";
j1_url += "} ";
j1_url += "//--> \n";
j1_url += "</"+"script> \n";
var j2_url = "<script language='JavaScript1.2'> \n";
j2_url += "<!-- \n";
j2_url += "_ReSize(); ";
j2_url += "//--> \n";
j2_url += "</"+"script> \n";
var settings;
if (g4_is_gecko) {
settings ='width='+(w+10)+',';
settings +='height='+(h+10)+',';
} else {
settings ='width='+w+',';
settings +='height='+h+',';
}
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='content-type' content='text/html; charset="+g4_charset+"'>\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 (j1_url);
win.document.write ("<style>.dragme{position:relative;}</style> \n");
win.document.write ("</head> \n\n");
win.document.write ("<body oncontextmenu='return false' leftmargin=0 topmargin=0 bgcolor=#dddddd style='cursor:arrow;'> \n");
win.document.write ("<table width=100% height=100% cellpadding=0 cellspacing=0><tr><td align=center valign=middle><img id='_img' src='"+img.src+"' width='"+w+"' height='"+h+"' border=0 class='dragme' "+click+"></td></tr></table>");
win.document.write (j2_url);
win.document.write ("</body></html>");
win.document.close();
if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
}
// img_src 값으로 이미지창을 팝업 (팬+줌)
function image_window3(img_src, w, h)
{
if (!w || !h)
{
var w = img.tmp_width;
var h = img.tmp_height;
}
var winl = (screen.width-w)/2;
var wint = (screen.height-h)/3;
if (w >= screen.width) {
winl = 0;
h = (parseInt)(w * (h / w));
}
if (h >= screen.height) {
wint = 0;
w = (parseInt)(h * (w / h));
}
if(win!= null) win.close(); // 만약 win에 값이 있다면 현재 팝업 닫기
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 += "//--> \n";
js_url += "</"+"script> \n";
// zzzz님이 알려주셨어요. 감솨 ^^
var j1_url = "<script language='JavaScript1.2'> \n";
j1_url += "<!-- \n";
j1_url += "function _ReSize() { ";
j1_url += " $get = document.getElementById('_img').style; ";
j1_url += " var ratio = document.getElementById('_img').width / document.getElementById('_img').height; ";
j1_url += " $get.width = document.body.clientWidth; ";
j1_url += " $get.height = document.body.clientWidth / ratio; ";
j1_url += " setTimeout('_ReSize()', 100); ";
j1_url += "} ";
j1_url += "//--> \n";
j1_url += "</"+"script> \n";
var j2_url = "<script language='JavaScript1.2'> \n";
j2_url += "<!-- \n";
j2_url += "_ReSize(); ";
j2_url += "//--> \n";
j2_url += "</"+"script> \n";
var settings;
if (g4_is_gecko) {
settings ='width='+(w+10)+',';
settings +='height='+(h+10)+',';
} else {
settings ='width='+w+',';
settings +='height='+h+',';
}
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='content-type' content='text/html; charset="+g4_charset+"'>\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 (j1_url);
win.document.write ("<style>.dragme{position:relative;}</style> \n");
win.document.write ("</head> \n\n");
win.document.write ("<body oncontextmenu='return false' leftmargin=0 topmargin=0 bgcolor=#dddddd style='cursor:arrow;'> \n");
win.document.write ("<table width=100% height=100% cellpadding=0 cellspacing=0><tr><td align=center valign=middle><img id='_img' src='"+img_src+"' width='"+w+"' height='"+h+"' border=0 class='dragme' "+click+"></td></tr></table>");
win.document.write (j2_url);
win.document.write ("</body></html>");
win.document.close();
if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
}
// bit.ly api를 이용해서 단축 경로를 생성한다
function get_bitly_g4(tid, bo_table, wr_id) {
// set up default options
wr_url = g4_url + '/bbs/board.php?bo_table=' + bo_table + '&wr_id=' + wr_id;
wr_url_encode = escape(wr_url);
var defaults = {
version: '2.0.1',
login: bitly_id,
apiKey: bitly_key,
history: '0',
longUrl: wr_url_encode
};
// Build the URL to query
var daurl = "http://api.bit.ly/shorten?"
+"version="+defaults.version
+"&longUrl="+defaults.longUrl
+"&login="+defaults.login
+"&apiKey="+defaults.apiKey
+"&history="+defaults.history
+"&format=json&callback=?";
// Utilize the bit.ly API
$.getJSON(daurl, function(data){
var bitly_url = data.results[wr_url].shortUrl;
// Make a good use of short URL - 화면의 url 정보를 업데이트
$(tid).html('<a href='+bitly_url+' target=new>'+bitly_url+'</a>');
url = g4_path +'/' + g4_bbs +'/g4_bitly_update.php';
send = 'bo_table=' + bo_table;
send += '&wr_id=' + wr_id;
send += '&bitly_url=' + bitly_url;
$.ajax({
type: 'POST',
url: url,
data: send,
cache: false,
async: false,
success: function(result) {
result = result.split(',');
msg_num = result[0];
if (msg_num !== '000')
alert('잘못된 접근입니다.\n\n'+result);
}
});
});
};
}
0
댓글 0개