리스트의 이미지가 새창에서 안뜹니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

리스트의 이미지가 새창에서 안뜹니다. 정보

리스트의 이미지가 새창에서 안뜹니다.

본문

forever님의 스킨을 사용중인데요.
 
 
설정을 2로 했습니다. (이미지클릭시 새창으로 이미지가 뜨고, 제목클릭시 본문으로 이동)
 
 
리스트에서 이미지클릭하면 새창은 뜨는데요.이미지가 안나오네요.
어쩌다가 이미지가 나오다가도 몇번클릭하다 보면 또 안나오구요.
 
본문에서는 새창에서 이미지가 잘 나오거든요.
 
 
 
아예 이미지가 안나오는것도 아니구.가끔 한번씩 이미지가 뜨거든요...;;
어떻게 된건지 도무지 모르겠네요.
답변좀 부탁드립니다.
 
 
 
 
 
 

댓글 전체

==>> 아예 이미지가 안나오는것도 아니구.가끔 한번씩 이미지가 뜨거든요...;;

접속환경의 문제가 아닐까 생각합니다.
아예 안뜨거나 해야는데 떴다 안떴다 하는것은 접속회선이나 사용자 컴의 문제로 보입니다.
이미지는 나오는군요.
새창소스를 보니깐,

...
<img src='이미지주소' width='0' height='0' onclick='window.close();' style='cursor:pointer' class='dragme'>
...


이미지는  넘겨지는데요.
근데 새창이 리사이즈가 안되고, 이미지크기가  width='0' height='0'  이렇게 나옵니다.

그리고 제가 컴에서 작업하고 있어서 링크를 걸수가 없어요.
소스를 좀 올려볼께요.

============================================
스킨폴더/list.skin.php소스
============================================
...
...
...
if($board[bo_10] == '2') {
 echo "<script language='javascript' src='{$board_skin_path}/image_window.js'></script>";
$view_img  = "<a href=\"javascript:;\" OnClick=\"image_window('$g4[path]/data/file/$bo_table/$image')\" onFocus=\"this.blur();\">";
$view_href = "<a class='bl' href='{$g4[bbs_path]}/board.php?bo_table=$bo_table&wr_id={$list[$i][wr_id]}'>";
}
...
...
...


============================================
스킨폴더/image_window.js
============================================

    // 이미지의 크기에 따라 새창의 크기가 변경됩니다.
    // zzzz님께서 알려주셨습니다. 2005/04/12 , Re 2006/03/23
    function image_window(img, w, h)
    {
        if(!w) {
            if(!img.width) {
                var imgObj = new Image();
                imgObj.src = img;
                var img = imgObj.src;
                var w = imgObj.width;
                var h = imgObj.height;
            } else {
                var w = img.width;
                var h = img.height;
                var img = img.src;
            }
            var option = "yes";
        } else
            var option = "no";

        winl = (screen.width-w)/2;
        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='JavaScript'> \n";
            js_url += "<!-- \n";
            js_url += "var is_ie=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 = is_ie ? tx + event.clientX - x : tx + e.clientX - x; \n";
            js_url += "    dobj.style.top  = is_ie ? ty + event.clientY - y : ty + e.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      = is_ie ? event.srcElement : e.target; \n";
            js_url += "  var topelement = is_ie ? 'BODY' : 'HTML'; \n";
            js_url += "  while (fobj.tagName != topelement && fobj.className != 'dragme') \n";
            js_url += "  { \n";
            js_url += "    fobj = is_ie ? fobj.parentElement : fobj.parentNode; \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 = is_ie ? event.clientX : e.clientX; \n";
            js_url += "    y = is_ie ? event.clientY : e.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";

        var settings  ='width='+w+',';
            settings +='height='+h+',';
            settings +='top='+wint+',';
            settings +='left='+winl+',';
            settings +='scrollbars=no,';
            settings +='resizable='+option+',';
            settings +='status=no';

        if(!g4_charset) var g4_charset = 'euc-kr';
        win=window.open("","newWindow",settings);
        win.document.open();
        win.document.write ("<html><head> \n<meta http-equiv='imagetoolbar' CONTENT='no'> \n<meta http-equiv='content-type' content='text/html; charset="+g4_charset+"'>\n");
        win.document.write ("<title>이미지 "+w+" x "+h+"</title> \n");
        if(w >= screen.width || h >= screen.height) {
            win.document.write (js_url);
            var click = "width='"+w+"' height='"+h+"' ondblclick='window.close();' style='cursor:move'";
        } else
            var click = "width='"+w+"' height='"+h+"' onclick='window.close();' style='cursor:pointer'";
        win.document.write ("<style>.dragme{position:relative;}</style>\n");
        win.document.write ("</head> \n\n");
        win.document.write ("<body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0' bgcolor='#dddddd'> \n");
        win.document.write ("<table cellpadding='0' cellspacing='0' width='100%' height='100%'><tr><td align='center'><img src='"+img+"' "+click+" class='dragme'></td></tr></table> \n");
        win.document.write ("</body></html>");
        win.document.close();

        if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
    }
$view_img  = "<a href=\"javascript:;\" OnClick=\"image_window('$g4[path]/data/file/$bo_table/$image')\" onFocus=\"this.blur();\">";

위소스에서

function image_window(img, w, h)  함수에 w,h 값을 넘겨주지 않아서 그럴까요?

제가 초보라서 어렵네요.
저도 확인해보니 똑같은 문제가 있습니다. 첨에는 안보였다가 다시 클릭하면 보이는.. -_- ;;

리스트화면에서 image_window.js  스크립터를 실행시, 이미지를 불러올때 이미지의 사이즈를 먼저 불러와줘야 하는데 그게 안되는거 같군요. 등록되는 이미지의 크기가 다 다르다 보니 미리 지정할수도 없고
스크립터가 실행된다음, 이미지의 원본크기를 불러와야 하는건데....






임시방편입니다만, 아래의 코드로 대체하십시요.
아래 코드의 단점은 .......
..................................단점 : 화면보다 큰이미지인경우, 마우스를 이용한 화면이동이 안됩니다.



1. image_window.js 파일을 아래 코드로 대체하십시요.
----------------------------------------------------------------------------

function image_window2(imageURL){
<!--
imageHandle=open("","popupForImage","toolbar=no,location=no,status=no,manubar=no,scrollbars=no,resizable=yes,width=100,height=100,top=0,left=0");
  imageHandle.document.write("<title>  </title>");
  imageHandle.document.write("<style>");
  imageHandle.document.write("*{margin:0;padding:0;border:0;}");
  imageHandle.document.write("</style>");
  imageHandle.document.write("<img src=\""+imageURL+"\" onload=\"window.resizeTo(this.width,this.height);\" onclick=\"self.close();\" style=\"cursor:hand;\" title=\"클릭하면 닫힙니다.\">");
-->
}
 




2. list.skin.php  144~158라인쪽의 코드를 아래 코드로 대체하십시요.
-----------------------------------------------------------------------------------------------

//---- 이미지 새창보기 여부 설정
if($board[bo_10] == '1') {
$view_img  = "<a href='{$g4[bbs_path]}/board.php?bo_table=$bo_table&wr_id={$list[$i][wr_id]}'>";
$view_href = "<a class='bl' href='{$g4[bbs_path]}/board.php?bo_table=$bo_table&wr_id={$list[$i][wr_id]}'>";
}
if($board[bo_10] == '2') {
echo "<script language='javascript' src='{$board_skin_path}/image_window.js'></script>";
$view_img  = "<a href=\"javascript:;\" OnClick=\"image_window2('$g4[path]/data/file/$bo_table/$image')\" onFocus=\"this.blur();\" >";
$view_href = "<a class='bl' href='{$g4[bbs_path]}/board.php?bo_table=$bo_table&wr_id={$list[$i][wr_id]}'>";
}
if($board[bo_10] == '3') {
echo "<script language='javascript' src='{$board_skin_path}/image_window.js'></script>";
$view_img  = "<a href=\"javascript:;\" OnClick=\"image_window2('$g4[path]/data/file/$bo_table/$image')\" onFocus=\"this.blur();\" >";
$view_href  ="<a href=\"javascript:;\" OnClick=\"popupImage('$g4[path]/data/file/$bo_table/$image')\" onFocus=\"this.blur();\" >";
}
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT