在javascript中模拟键入的外观,而不是实际的按键

rm-*_*nda 5 javascript jquery dom

我正在尝试编写一个简单的函数,使其看起来好像有人在输入 textarea

- 这是我的功能(原谅我,如果它的残暴,但我通常不使用javascript)---该console.log()部分工作正常,但由于某种原因我不能得到这个脚本更新dom我期望的方式.. .

        function type(string) {
            value = "";

            el = document.getElementById("typeArea");
            for (var i = 0; i < string.length; i++) {
                value += string[i];
                //$("#fbw > textarea").val(value);
                el.textContent = value;
                console.log(value);
                sleep(160);
            }
            sleep(2000);
        }
Run Code Online (Sandbox Code Playgroud)

我很感激你能给我的任何见解.

Tra*_*s J 11

jsFiddle Demo

你所缺少的只是一个结构而不是Sleep.实现此目的的js方法是使用超时和递归调用来迭代字符串

function type(string,element){
 (function writer(i){
  if(string.length <= i++){
    element.value = string;
    return;
  }
  element.value = string.substring(0,i);
  if( element.value[element.value.length-1] != " " )element.focus();
  var rand = Math.floor(Math.random() * (100)) + 140;
  setTimeout(function(){writer(i);},rand);
 })(0)
}
Run Code Online (Sandbox Code Playgroud)