크롬에서 쓰기 버튼 클릭 시 무한 로딩

안녕하세요~ 그누보드4 사용자입니다.

 

인터넷 익스플로러에서는 잘 동작하는데

크롬이나 사파리에서 해당 페이지의 쓰기 버튼을 누르면 아래 스샷처럼 무한 로딩이 걸립니다.

 

 

 

09ec218b479b1cfef71844c42f73683a_1459874722_128.png 

혹시 이유를 알 수 있을까요? 아래는 write.skin.php 파일 소스입니다.

 

 

 

Copy
<center><?if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 $gallery_width="610"; // 쓰기 테이블 폭//로딩메세지 보여주기// 22줄 스크립트추가 / 25줄 div_테이블 플래시//38줄  onsubmit="return upload()" 추가//195 div로 감싸기 ?><style type="text/css"><!--.w_title    { font-family:돋움; font-size:9pt; color:#333333; }--></style><script language="JavaScript">var char_min = parseInt(<?=$write_min?>);var char_max = parseInt(<?=$write_max?>);function upload() { document.all.selection.style.visibility = "hidden"; document.all.upload.style.visibility = "visible"; } </script><?if ($w == "") { $title_msg = "새글쓰기"; } else if ($w == "u") { $title_msg = "수정하기"; } else { $title_msg = "답변하기";}//웹 브라우저 구분 if(eregi("mozilla",$HTTP_USER_AGENT)) {      if(eregi("msie",$HTTP_USER_AGENT)) {          $ml = "-250"; //Explorer        $mt = "-50"; }else{          $ml = "130"; //Netscape        $mt = "-70";     }}else{         $ml = "-30"; //나머지        $mt = "-50";}?><form name="fwrite" method="post" action="javascript:fwrite_check(document.fwrite);" enctype="multipart/form-data" autocomplete="off"style="margin:0px;" onsubmit="return upload()"><table width="<?=$gallery_width?>" align="center" border="0" cellpadding="0" cellspacing="0"><tr><td> <div style="border:1px solid #ddd; height:26px; background:url(<?=$board_skin_path?>/img/title_bg.gif) repeat-x;"><table width=100% border=0 cellpadding=0 cellspacing=0 style="font-weight: color:#626466;"><tr><td height=30 style='padding-top:5px; padding-left:25px;'><strong> <?=$board[bo_subject]?> <?=$title_msg?> </strong></td></tr></table></div><div style="height:3px; background:url(<?=$board_skin_path?>/img/title_shadow.gif) repeat-x; line-height:1px; font-size:1px;"></div></td></tr> <tr>     <td height="3"></td></tr><tr><td align=center><table width="100%" border="0" cellspacing="0" cellpadding="0"><input type=hidden name=null> <input type=hidden name=w        value="<?=$w?>"><input type=hidden name=bo_table value="<?=$bo_table?>"><input type=hidden name=wr_id    value="<?=$wr_id?>"><input type=hidden name=sca      value="<?=$sca?>"><input type=hidden name=sfl      value="<?=$sfl?>"><input type=hidden name=stx      value="<?=$stx?>"><input type=hidden name=spt      value="<?=$spt?>"><input type=hidden name=sst      value="<?=$sst?>"><input type=hidden name=sod      value="<?=$sod?>"><input type=hidden name=page     value="<?=$page?>"><tr><td height="1" colspan='2' bgcolor='#DDDDDD'></td></tr><tr>     <td width="90" height="5"></td>    <td width="<?=$gallery_width-90?>"></td></tr><? if ($is_name) { ?><tr>     <td height="25" style='padding-top:5px; padding-left:10px;'><span class=w_title>이름</span></td>    <td><INPUT maxLength=10 size=15 name=wr_name itemname="이름" required value="<?=$name?>"><? if ($is_password) { ?>     &nbsp; &nbsp; &nbsp; &nbsp;    <span style='padding-top:3px;' class=w_title>패스워드</span>&nbsp;&nbsp;    <INPUT type=password maxLength=20 size=15 name=wr_password itemname="패스워드" <?=$password_required?>><? } ?></td></tr><? } ?><? if ($is_email) { ?><tr>    <td height="25" style='padding-top:5px; padding-left:10px;'><span class=w_title>이메일</span></td>    <td><input class='w_text' maxlength=100 size=54 name=wr_email email itemname="이메일" value="<?=$email?>"></td></tr><? } ?><? if ($is_homepage) { ?><tr>    <td height="25" style='padding-top:5px; padding-left:10px;'><span class=w_title>홈페이지</span></td>    <td><input class='w_text' size=54 name=wr_homepage itemname="홈페이지" value="<?=$homepage?>"></td></tr><? } ?><? if ($is_category) { ?><tr>    <td height="25" style='padding-top:5px; padding-left:10px;'><span class=w_title>분 류</span></td>    <td><select name=ca_name required itemname="분류"><option value="">선택하세요<?=$category_option?></select></td></tr><? } ?><? if($w == 'u' && $is_admin) { ?><tr>    <td height="25" style='padding-top:5px; padding-left:10px;'><span class=w_title>날짜변경</span></td>    <td><input type=text name='wr_datetime' required itemname='시간' value='<?=$write[wr_datetime]?>' size=20></td></tr><? } ?><tr>     <td height="25" style='padding-top:5px; padding-left:10px;'><span class=w_title>제목</span></td>    <td><INPUT size=55 maxlength=10 name=wr_subject id="wr_subject" itemname="제목" required value="<?=$subject?>"></td></tr><tr>    <td height="25" style='padding-top:5px; padding-left:10px;'><span class=w_title>내용</span></td>    <td>        <? if (!$is_dhtml_editor) { ?>        <table width=100% cellpadding=0 cellspacing=0>        <tr>            <td width=70% align=left valign=bottom>                <span style="cursor: pointer;" onclick="textarea_decrease('wr_content', 10);"><img src="<?=$board_skin_path?>/img/up.gif" align='absmiddle'></span>                <span style="cursor: pointer;" onclick="textarea_original('wr_content', 10);"><img src="<?=$board_skin_path?>/img/start.gif" align='absmiddle'></span>                <span style="cursor: pointer;" onclick="textarea_increase('wr_content', 10);"><img src="<?=$board_skin_path?>/img/down.gif" align='absmiddle'></span>     &nbsp; &nbsp;<? $option = "";$option_hidden = "";if ($is_notice || $is_html || $is_secret || $is_mail) {     $option = "";    if ($is_notice) {         $option .= "<input type=checkbox name=notice value='1' $notice_checked>공지&nbsp;";    }    if ($is_html) {        if ($is_dhtml_editor) {            $option_hidden .= "<input type=hidden value='html1' name='html'>";        } else {            $option .= "<input onclick='html_auto_br(this);' type=checkbox value='$html_value' name='html' $html_checked><span class=w_title>html</span>&nbsp;";        }    }    if ($is_secret) {        if ($is_admin || $is_secret==1) {            $option .= "<input type=checkbox value='secret' name='secret' $secret_checked><span class=w_title>비밀글</span>&nbsp;";        } else {            $option_hidden .= "<input type=hidden value='secret' name='secret'>";        }    }        if ($is_mail) {        $option .= "<input type=checkbox value='mail' name='mail' $recv_email_checked>답변메일받기&nbsp;";    }}echo $option_hidden;if ($option) {?><?=$option?><? } ?></td>            <td width=30% align=right><? if ($write_min || $write_max) { ?><span id=char_count></span>글자<?}?></td>        </tr>        </table>        <? } ?>        <textarea id="wr_content" name="wr_content" style='width:98%; word-break:break-all; IME-MODE: active;' rows=10 itemname="내용" required         <? if ($is_dhtml_editor) echo ' geditor '; ?>        <? if ($write_min || $write_max) { ?>onkeyup="check_byte('wr_content', 'char_count');"<?}?>><?=$content?></textarea>        <? if ($write_min || $write_max) { ?><script language="javascript"> check_byte('wr_content', 'char_count'); </script><?}?>  </td></tr><? if ($is_file) { ?><tr>     <td height="25" style='padding-top:5px; padding-left:10px;'>이미지</td>    <td style='padding-top:3px;'>파일 용량 <?=$upload_max_filesize?> 이하만 업로드 가능 <table id="variableFiles" cellpadding=0 cellspacing=0></table><?// print_r2($file); ?>        <script language="JavaScript">        function add_file(delete_code)         {            var objTbl;            var objRow;            var objCell;            if (document.getElementById)                objTbl = document.getElementById("variableFiles");            else                objTbl = document.all["variableFiles"];            objRow = objTbl.insertRow(objTbl.rows.length);            objCell = objRow.insertCell(0);            objCell.innerHTML = "<div id='selection' align='center' valigh='middle'><input type='file' size=50 name='bf_file[]' title='파일 용량 <?=$upload_max_filesize?> 이하만 업로드 가능' itemname='파일형식' images></div><br>";            if (delete_code)                 objCell.innerHTML += delete_code;            else            {                <? if ($is_file_content) { ?>                objCell.innerHTML += "<input type='text' size=50 name='bf_content[]' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'>";                <? } ?>                ;            }        }        <?=$file_script; //수정시에 필요한 스크립트?>        function del_file()        {            var file_length = <?=(int)$file_length?>;            var objTbl = document.getElementById("variableFiles");            if (objTbl.rows.length - 1 > file_length)                objTbl.deleteRow(objTbl.rows.length - 1);        }        </script>    </td></tr><? } ?><? if($is_guest) { //자동등록방지 ?>  <td>· 자동등록방지</td>  <td  height="100" style="vertical-align:middle">  <div>  <div style="float:left; width:130px; display:inline;">      <img id='kcaptcha_image' border='0' width=120 height=60 onclick="imageClick();" title="글자가 잘안보이는 경우 클릭하시면 새로운 글자가 나옵니다." style="cursor:pointer;" >  </div>  <div style="float:left; height:20px; margin-top:20px; display:inline;"><input class='ed' type=input size=10 name=wr_key itemname="자동등록방지" required>&nbsp;&nbsp;왼쪽의 글자를 입력하여 주세요.</div>  </div>  <script type="text/javascript"> var md5_norobot_key = ''; </script>  <script type="text/javascript" src="<?="$g4[path]/js/prototype.js"?>"></script>  <script type="text/javascript">  function imageClick() {      var url = "<?=$g4[bbs_path]?>/kcaptcha_session.php";      var para = "";      var myAjax = new Ajax.Request(          url,          {              method: 'post',              asynchronous: true,              parameters: para,              onComplete: imageClickResult          });  }  function imageClickResult(req) {      var result = req.responseText;      var img = document.createElement("IMG");      img.setAttribute("src", "<?=$g4[bbs_path]?>/kcaptcha_image.php?t=" + (new Date).getTime());      document.getElementById('kcaptcha_image').src = img.getAttribute('src');      md5_norobot_key = result;  }  Event.observe(window, "load", imageClick);  </script>  </td></tr><? } ?><tr><td height="3" colspan='2'></td></tr></table><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td height="1" bgcolor='#DDDDDD'></td></tr><tr><td height="15"></td></tr><tr>     <td align="center" valign="top">        <input type=image id="btn_submit" src="<?=$board_skin_path?>/img/btn_write.gif" border=0 accesskey='s'>&nbsp;        <a href="./board.php?bo_table=<?=$bo_table?>"><img id="btn_list" src="<?=$board_skin_path?>/img/btn_list.gif" border=0></a>  <div id="upload" style=" width:251; height:67; margin-top:<?=$mt?>px; margin-left:<?=$ml?>px; position:absolute; visibility:hidden;">  <table border="1" cellpadding="0" cellspacing="0" align="center" bordercolordark="white" bordercolorlight="#FF8000">   <tr>     <td width="251" height="67"><embed src="<?=$board_skin_path?>/box_img/up_loading.swf" width="251" height="67"></td>   </tr>  </table></div></td></tr></table></td></tr></table></form><script language="javascript"><?// 관리자라면 분류 선택에 '공지' 옵션을 추가함if ($is_admin) {    echo "    if (typeof(document.fwrite.ca_name) != 'undefined')    {        document.fwrite.ca_name.options.length += 1;        document.fwrite.ca_name.options[document.fwrite.ca_name.options.length-1].value = '공지';        document.fwrite.ca_name.options[document.fwrite.ca_name.options.length-1].text = '공지';    }";} ?>with (document.fwrite) {    if (typeof(wr_name) != "undefined")        wr_name.focus();    else if (typeof(wr_subject) != "undefined")        wr_subject.focus();    else if (typeof(wr_content) != "undefined")        wr_content.focus();    if (typeof(ca_name) != "undefined")        if (w.value == "u")            ca_name.value = "<?=$write[ca_name]?>";}function html_auto_br(obj) {    if (obj.checked) {        result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");        if (result)            obj.value = "html2";        else            obj.value = "html1";    }    else        obj.value = "";}function fwrite_check(f) {<? if (!$is_admin){ //관리자가 어니라면 ?>    var s = "";    if (s = word_filter_check(f.wr_subject.value)) {        alert("제목에 금지단어('"+s+"')가 포함되어있습니다");        return;    }    if (s = word_filter_check(f.wr_content.value)) {        alert("내용에 금지단어('"+s+"')가 포함되어있습니다");        return;    }<?}?> if (document.getElementById('char_count')) {        if (char_min > 0 || char_max > 0) {            var cnt = parseInt(document.getElementById('char_count').innerHTML);            if (char_min > 0 && char_min > cnt) {                alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");                return;            }             else if (char_max > 0 && char_max < cnt) {                alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");                return;            }        }    } if (typeof(f.wr_key) != "undefined") {         if (hex_md5(f.wr_key.value) != md5_norobot_key) {           <? if (function_exists("imagecreate"))           {             echo "alert('자동등록방지용 글자가 순서대로 입력되지 않았습니다.');";           }           else           {             echo "alert('자동등록방지용 빨간글자가 순서대로 입력되지 않았습니다.');";           }           ?>             f.wr_key.focus();             return;         }     }    var geditor_status = document.getElementById("geditor_wr_content_geditor_status");    if (geditor_status != null)    {        if (geditor_status.value == "TEXT") {            f.html.value = "html2";        }        else if (geditor_status.value == "WYSIWYG") {            f.html.value = "html1";        }    }    document.getElementById('btn_submit').disabled = true;    document.getElementById('btn_list').disabled = true;    <?    if ($g4[https_url])        echo "f.action = '$g4[https_url]/$g4[bbs]/write_update.php';";    else        echo "f.action = './write_update.php';";    ?>    f.submit();}</script><script language="JavaScript" src="<?="$g4[path]/js/board.js"?>"></script><? if ($is_dhtml_editor) {?><script language="JavaScript" src="<?="$g4[path]/geditor/geditor.js"?>"></script><?}?><script language="JavaScript">window.onload=function() {    drawFont();}</script>

 

답변 1개

소스가 너무 길어 소스를 보고 이야기 드리는 건 아니구요.

증상만 봐서는 javascript 중 크롬이랑 맞지않는 부분이 있을 것 같네요. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고