我编写了一些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;
我没什么特别的,只是为了好玩(实际上我是一名新程序员,并试图提高我的编程技巧)。它在Chrome中运行良好,但在Firefox中它有一个问题。这是一个想法:
它会创建一个文本区域来键入&amp;当用户开始输入时,它只会输入&#34;你是个傻瓜。&#34;它从名为&#39; txt&#39;的数组中选取。因此,一旦按下一个键,它将打印该字母,并且在释放该键时,它将删除最后打印的字母(即,它将仅显示来自阵列的字母并且移除按下的键字母)。
Chrome正在执行它,但在Firefox中,onkeyup
事件无效。按下下一个键时,它会删除按下的字母。
答案 0 :(得分:1)
此处没有本地event
变量:
document.getElementById('txtinput').onkeyup = function(){myFunction2(event)}
Chrome似乎正在传递一个为您工作的全局event
对象。
如果您希望keyup
的事件对象进入您的函数,请丢失包装器:
document.getElementById('txtinput').onkeyup = myFunction2;