채팅 입력창에 커서 깜빡이는거 없애는 방법?
아래 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");
?>
근데 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");
?>
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 4개
프레임에 z-index:0; 으로 두고
마우스두고 싶은곳에 z-index: 1000; 정도 해두면?
여기 ID input 창을 우선으로 하는 방법은 없을까요? id input 창에 커서를 절대적으로 우선권을 주는 방법요...
이걸 주석처리 해보세요