вместо
if (typeof param!='indefined') printContent(param.id,param);
нужно
if (typeof param!='indefined') printContent(param.id,param.str);
опечатка.
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<div id="x"></div>
<div id="y"></div>
<script>
function teletayper(){
var teleStack=[];
function add (id,str){
teleStack.push({id:id, str:str })
};
function play (){
var param=teleStack.shift();
if (typeof param!='indefined') printContent(param.id,param.str);
}
function printContent(id, string){
var element = document.getElementById(id);
var counter = 0;
var interval = window.setInterval( function(){
element.innerHTML += string[counter++];
if(counter == string.length){
window.clearInterval(interval);
play ();
}
}, 50 );
}
return {
add:add,
play:play
};
}
t=teletayper();
t.add('x','hello');
t.add('y','hello 2222222');
t.play();
</script>
</body>
</html>