채팅 입력창에 커서 깜빡이는거 없애는 방법? > 그누4 질문답변

그누4 질문답변

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

채팅 입력창에 커서 깜빡이는거 없애는 방법? 정보

채팅 입력창에 커서 깜빡이는거 없애는 방법?

본문

아래 chat.php 소스를 index.php 페이지 하단에 iframe으로 넣었습니다.
근데 index.php를 refresh 하면 화면 중심이 항상 iframe으로 가버립니다.
이유는 마우스 커서가 chat.php의 채팅 입력창에서 깜빡거리기 때문인데요.
마우스 포인트를 기본적으로 저기다 두지 않는 방법 좀 알려주세요..
이하 소스입니다.







<?
include_once("_common.php");
$hereis = "chat";
include_once("../head.sub.php");
?>


<!----------------------------------------------------------------------------------->
<!-- 채팅 -->
<!----------------------------------------------------------------------------------->
<center>

<font color=blue size=6><b>chat.com</b></font>

<div id='chatting' style="width=650px;text-align:center;float:center;">
    
    <span style='width:400px;padding:5px;font-size:9pt;font-family:arial;line-height:130%;text-align:left;float:left;'><b>Chat Window</b></span>
    
    <span style='width:200px;padding:5px;font-size:9pt;font-family:arial;line-height:130%;text-align:left;float:right;'><b>Online users</b></span>

    <div id='chat' style='width:440px;height:300px;overflow-y:scroll;border:1px solid #000000;padding:5px;font-size:9pt;font-family:arial;line-height:130%;text-align:left;float:left;' onmouseover='is_scroll=true;' onblur='is_scroll=false'></div>

    <div id='chat_members' style='width:200px;height:300px;overflow-y:scroll;border:1px solid #000000;padding:5px;font-size:9pt;font-family:arial;line-height:130%;text-align:left;float:right;' onmouseover='is_scroll=true;' onblur='is_scroll=false'></div>

    <div style="clear:both; padding:5px 0 0 0;"></div>

    <input type='hidden' id='last_id'>
    <input type='hidden' id='chat_color' value='#000000'>
    <input type='text' id='chat_name' size=11 readonly>
    <input type='text' id='chat_msg' size=59>
    <input type=button value=' Send ' onclick='chat_get(1);'>

    <script>
    var colorTable = [
        "#5F9EA0", "#48D1CC", "#00FFFF", "#40E0D0", "#20B2AA", "#008B8B", "#008080", "#7FFFD4", "#66CDAA", "#8FBC8F",
        "#3CB371", "#2E8B57", "#006400", "#008000", "#228B22", "#32CD32", "#00FF00", "#7FFF00", "#7CFC00", "#ADFF2F",
        "#98FB98", "#90EE90", "#00FF7F", "#00FA9A", "#556B2F", "#6B8E23", "#808000", "#BDB76B", "#B8860B", "#DAA520",
        "#FFD700", "#F0E68C", "#EEE8AA", "#FFEBCD", "#FFE4B5", "#F5DEB3", "#FFDEAD", "#DEB887", "#D2B48C", "#BC8F8F",
        "#A0522D", "#8B4513", "#D2691E", "#CD853F", "#F4A460", "#8B0000", "#800000", "#A52A2A", "#B22222", "#CD5C5C",
        "#F08080", "#FA8072", "#E9967A", "#FFA07A", "#FF7F50", "#FF6347", "#FF8C00", "#FFA500", "#FF4500", "#DC143C",
        "#FF0000", "#FF1493", "#FF00FF", "#FF69B4", "#FFB6C1", "#FFC0CB", "#DB7093", "#C71585", "#800080", "#8B008B",
        "#9370DB", "#8A2BE2", "#4B0082", "#9400D3", "#9932CC", "#BA55D3", "#DA70D6", "#EE82EE", "#DDA0DD", "#D8BFD8"
    ];
    var k = 0;
  var w = 4;
  var h = 20;
  document.write("<table>");
    for (var i = 0; i < w; i++) {
        document.write("<tr>");
        for (var j = 0; j < h; j++) {
            document.write("<td onclick=\"document.getElementById('chat_color').value='"+colorTable[k]+"';\" style='background-color:"+colorTable[k]+";cursor:pointer;' width=12px> </td>");
            k++;
        }
        document.write("</tr>");
    }
  document.write("</table>");
  </script>

</div>

<script>
var array_last_id = Array();
var chat_cnt = 0;
var req = null;

function sajax_init_object() {
 
  var A;

  var msxmlhttp = new Array(
  'Msxml2.XMLHTTP.5.0',
  'Msxml2.XMLHTTP.4.0',
  'Msxml2.XMLHTTP.3.0',
  'Msxml2.XMLHTTP',
  'Microsoft.XMLHTTP');
  for (var i = 0; i < msxmlhttp.length; i++) {

    try {
      A = new ActiveXObject(msxmlhttp[i]);
    } catch (e) {
      A = null;
    }
  }

  if(!A && typeof XMLHttpRequest != "undefined")
    A = new XMLHttpRequest();
  if (!A)
    alert("Error creating request object!");

  return A;
}

function chat_get(mode) {

    var chat_name = document.getElementById('chat_name').value;
    var chat_msg = document.getElementById('chat_msg').value;
    var chat_color = document.getElementById('chat_color').value;
    var last_id = document.getElementById('last_id').value;

    var url = 'chat_update.php';
    var param = '';
    param += 'name=' + encodeURIComponent(chat_name);
    if (mode) param += '&msg=' + encodeURIComponent(chat_msg);
    if (chat_color) param += '&color=' + encodeURIComponent(chat_color);
    param += '&last_id=' + escape(last_id);
    param += '&chat_ss=' + escape('<?=session_id()?>');

    if (req == null) req = sajax_init_object();
    if (req == null) {//원격 접속 실패시

      location.href = '<?=$g4[bbs_path]?>/chat.php';
      return false;
    }

    req.open("POST", url, true);
    req.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    if (mode) req.onreadystatechange = chat_update_complete;
    else req.onreadystatechange = chat_get_complete;
 
    req.send(param);
}

function chat_get_complete() {

    if (req.readyState == 4) {

        if (req.status == 200) {

            chat_result_display();
            document.getElementById('chat').scrollTop = 100000;
            return;
        }
    }
    else {

      return;
    }
}

function chat_update_complete() {

    if (req.readyState == 4) {

        if (req.status == 200) {

            document.getElementById('chat_msg').value = '';
            document.getElementById('chat_msg').focus();
            chat_result_display();
            document.getElementById('chat').scrollTop = 100000;
            return;
        }
    }
    else {

      return;
    }
}

function chat_result_display() {

    var chat = req.responseXML.getElementsByTagName("chat");
    var chat_members = req.responseXML.getElementsByTagName("chat_members");
    var last_id = '';

    for (i=0; i<chat.length; i++) {

        if (!chat[i].getElementsByTagName("ch_msg")[0]) continue;

        last_id = chat[i].getElementsByTagName("ch_id")[0].firstChild.nodeValue;
        if (array_last_id[last_id]) continue;

        document.getElementById('last_id').value = last_id;
        ch_name = chat[i].getElementsByTagName("ch_name")[0].firstChild.nodeValue;
        ch_msg = chat[i].getElementsByTagName("ch_msg")[0].firstChild.nodeValue;
        ch_color = chat[i].getElementsByTagName("ch_color")[0].firstChild.nodeValue;
        document.getElementById('chat').innerHTML += "<span style='color:"+ch_color+";'>" + ch_name + "</span> : <span style='color:"+ch_color+";'>" + ch_msg + "</span></br>";
        chat_cnt++;

        if (chat_cnt == 50) {

          location.href = '<?=$g4[bbs_path]?>/chat.php';
          return;
        }
    }

    document.getElementById('chat_members').innerHTML = '';
    for (i=0; i<chat_members.length; i++) {

        if (!chat_members[i].getElementsByTagName("ch_name")[0].firstChild.nodeValue) continue;
        document.getElementById('chat_members').innerHTML += chat_members[i].getElementsByTagName("ch_name")[0].firstChild.nodeValue + "(" + chat_members[i].getElementsByTagName("ch_ip")[0].firstChild.nodeValue + ")</br>";
    }
}

if (g4_is_ie)
    document.getElementById('chat_msg').onkeypress = function() { if (event.keyCode==13) chat_get(1); }
else
    document.getElementById('chat_msg').onkeypress = function(event) { if (event.keyCode==13) chat_get(1); }

document.getElementById('chat_name').value = "<?=$member[mb_id]?$member[mb_nick]:'guest_'.rand(1,1000)?>";
document.getElementById('chat_msg').focus();

chat_get();
self.setInterval('chat_get()',1000);

</script>
<!----------------------------------------------------------------------------------->
</center>

<?
include_once("../tail.sub.php");
?>

댓글 전체

마우스포인터가 가는 순서를 임의로 바꿔버리면 되지 않을까요?

프레임에  z-index:0; 으로 두고
마우스두고 싶은곳에  z-index: 1000; 정도 해두면?
그누보드 메인페이지에는 어짜피 login input 창이 있잖아요?
여기 ID input 창을 우선으로 하는 방법은 없을까요? id input 창에 커서를 절대적으로 우선권을 주는 방법요...
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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