Показать сообщение отдельно
Старый 08.02.2012, 23:43   #3
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: Gadget самописка

Не хотелось бы казаться грубым, но ваш код немного дерьмо.
Написал пример:
<html>
<
head>
<
title>Cat knows what is good for you.</title>
<
style type="text/css">
body {
    
font-family: Verdana, Arial, Sans;
    
font-size: 12px;
}
#container {
    
width: 480px;
}
#lines {
    
padding: 4px;
    
background: #f7f7f7;
    
border: 1px solid #ccc;
}
#input {
    
width: 450px;
    
padding: 2px;
}
#inbtn {
    
float: right;
    
width: 25px;
}
.
line {
    
margin-top: 4px;
    
padding-left: 2px;
    
border-left: 3px solid #eee;
}
.
line_neutral { border-left-color: #ccc; }
.line_user { border-left-color: #d87; }
.line_system { border-left-color: #78e; }
</style>
</
head>
<
body onLoad="init();">
<
div id="container">
<
div id="lines"></div>
<
button type="button" id="inbtn" onClick="user_input();">&gt;</button>
<
input type="text" id="input" onChange="user_input();">
</
div>
<
script type="text/javascript">
var 
lines = []; // pointers to text <div>'s
var lines_el = document.getElementById('lines'); // main text <div>
var input_el = document.getElementById('input'); // input field
var questions = [
    
// questions to be asked randomly:
    
"What's your name?",
    
'Do you like single-quoted strings?',
    
'Insert more questions here, okay?'
];
function 
random(n) { return Math.floor(Math.random() * n); }

function 
line_onclick(event) {
    
lines_el.removeChild(this);
    
lines.splice(lines.indexOf(this), 1); // remove this element from lines array
}

function 
line_add(text, type) {
    var 
el = document.createElement('div'); // create a new div
    
el.innerHTML = text; // set contents
    
el.onclick = line_onclick; // bind click event
    
if (type === undefined) type = 'neutral'; // default type if not specified
    
el.className = 'line line_' + type; // set <div> class property
    
lines_el.appendChild(el); // add it to lines containers
    
lines.push(el); // add it to list
}

function 
feedback(text) {
    
// convert to lowercase, for easier processing:
    
text = text.toLowerCase();
    
// handle input text here:
    
if (text == 'hi' || text == 'hello') return 'How are you?';
    
// return random question:
    
return questions[random(questions.length)];
}

function 
user_input() {
    var 
text = input_el.value; // get input
    
line_add(text, 'user'); // add user input line
    
line_add(feedback(text), 'system'); // add answer line
    
input_el.value = ''; // reset input text
}

function 
init() {
    
lines_el.innerHTML = ''; // reset contents of lines box
    
line_add('Example by YellowAfterlife');
    
line_add('Hello, user', 'system');
}
</script>
</body>
</html> 
Если нужно по Enter делать действия, то нужно привязать onkeydown событие (keydown для старых IE).
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
(Offline)
 
Ответить с цитированием