WorM32, вы все достали с такими советами:
el.innerHTML += 'новая строка' + '<br>';
Нельзя так делать,
нельзя!
foo += bar - это
foo = foo + bar,
перезапись
всего содержимого.
same4,
Если я правильно понял, то делается то что вам надо примерно так:
<style>
.warning{color: red}
#main-output p{margin:0; padding:0}
</style>
<input type='text' id="main-input"><input type='button' id="main-button" value="go">
<div id="main-output"></div>
<script>
var input = document.getElementById('main-input'),
button = document.getElementById('main-button'),
output = document.getElementById('main-output');
function enterCommand(){
if (input.value in commandList) commandList[input.value]();
else out('Команда не существует', 'warning');
}
button.onclick = enterCommand;
var commandList = {
test: function(){
out('Просто тест')
},
test2: function(){
out('Просто тест2')
}
};
function out(msg, cls){
var p = document.createElement('p');
p.appendChild(document.createTextNode(msg));
if(cls) p.className = cls;
output.appendChild(p)
}
</script>
P.S. В js сообществе принято с заглавных букв писать только конструкторы.