채팅 입력창에 커서 깜빡이는거 없애는 방법? > 그누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 창에 커서를 절대적으로 우선권을 주는 방법요...
© SIRSOFT
현재 페이지 제일 처음으로