脚本

时间:2015-11-24 13:42:48

标签: javascript

我编写了一些JavaScript代码,如下所示



window.onbeforeunload = function(myEvent) {
  myEvent.returnValue = "Bye Bye Fool!...";
}

var txt = ['Y', 'o', 'u', ' ', 'a', 'r', 'e', ' ', 'a', ' ', 'f', 'o', 'o', 'l', '.', ' '];
var value = document.getElementById('txtinput').value;
var lastNum = 0;
document.getElementById('txtinput').onkeypress = function() {
  myFunction()
}
document.getElementById('txtinput').onkeyup = function() {
  myFunction2(event)
}

function myFunction() {
  for (i = lastNum; i <= lastNum; i++) {
    value = value + txt[i];
  }
  if (i < txt.length) {
    lastNum = i;
  } else {
    lastNum = 0;
  }
  document.getElementById('txtinput').value = value;
}

function myFunction2(event) {
  var x = event.keyCode;
  var y = String.fromCharCode(x);
  value = String(value, y);
  document.getElementById('txtinput').value = value;
}
&#13;
<textarea rows="10" cols="50" id='txtinput'></textarea>
&#13;
&#13;
&#13;

我没什么特别的,只是为了好玩(实际上我是一名新程序员,并试图提高我的编程技巧)。它在Chrome中运行良好,但在Firefox中它有一个问题。这是一个想法:

它会创建一个文本区域来键入&amp;当用户开始输入时,它只会输入&#34;你是个傻瓜。&#34;它从名为&#39; txt&#39;的数组中选取。因此,一旦按下一个键,它将打印该字母,并且在释放该键时,它将删除最后打印的字母(即,它将仅显示来自阵列的字母并且移除按下的键字母)。

Chrome正在执行它,但在Firefox中,onkeyup事件无效。按下下一个键时,它会删除按下的字母。

1 个答案:

答案 0 :(得分:1)

此处没有本地event变量:

document.getElementById('txtinput').onkeyup = function(){myFunction2(event)}

Chrome似乎正在传递一个为您工作的全局event对象。

如果您希望keyup的事件对象进入您的函数,请丢失包装器:

document.getElementById('txtinput').onkeyup = myFunction2;