IE javascript处理文本框时出现未知运行时错误

IE javascript处理文本框时出现未知运行时错误,javascript,asp.net,internet-explorer,runtime-error,Javascript,Asp.net,Internet Explorer,Runtime Error,所以我已经研究这个错误有一段时间了,但我一辈子都无法解决它。关于这一点,有几个问题,但它们与我无关,至少我不这么认为。我是编程界的新手。但这是我的情况 以下代码使用setTimeout在文本框中写入文本 putftp.onclick = function () { var Text = document.getElementById("TextBox"); function firsttext() { Text.innerHTML += "This is the

所以我已经研究这个错误有一段时间了,但我一辈子都无法解决它。关于这一点,有几个问题,但它们与我无关,至少我不这么认为。我是编程界的新手。但这是我的情况

以下代码使用setTimeout在文本框中写入文本

putftp.onclick = function () {

    var Text = document.getElementById("TextBox");
    function firsttext() {
        Text.innerHTML += "This is the first test.";
        setTimeout(secondtest, 3000);
    }
    function secondtest() {
        Text.innerHTML += "<br/>This is the second test.";
        //setTimeout(thirdtest, 5000);
    }
    firsttext();
};
我的主要目标是用br开始一个新行,但出于某种原因,IE抛出了一个错误,并说这是一个未知的运行时错误。请注意,代码在没有br的情况下可以完美工作,但我希望这是第二个测试。开始新的工作。我尝试了很多方法来解决这个问题,比如在文本框周围放一个div,在代码中寻找丢失的br,甚至扔掉文本框,只要有一个div就行了。但是由于某些原因,文本框和br不能一起工作。我正在使用IE在和asp.net中进行测试

有人知道答案吗?提前谢谢你的帮助

更新 \n起作用,但不在新行开始文本。

处给出相同的结果。您可能希望尝试注意r后面和斜杠之前的空格

setTimeout的第一个参数是字符串:

setTimeout('secondtest()', 3000);

使用Text.value而不是Text.innerHTML。IE在尝试插入新行时不喜欢innerHTML属性,并且肯定使用了\n而不是。

我找到了答案,但感谢所有尝试过的人


我最终使用了原始文本框,并将Text.innerHTML更改为Text.innerTEXT

您尝试过将\n用作换行符吗?我怀疑这个问题是由于将HTML放入文本框-通常你只会使用字符串格式。我试过了,但没有成功。实际上,让我换一种说法,这个\n确实有效。但它不会从新行开始;断点,打开您最喜欢的javascript控制台并键入Text.innerHTML它说了什么?我真的建议为这类事情转移到标准库,比如jQuery。你到底在说什么?调用setTimeout的正确语法是在计时器过期时传递要执行的命令文本,因此它必须作为字符串传递。我编辑了我的答案,因为我做错了。实际上,setTimeout的第一个参数可以是字符串,也可以是函数句柄。e、 g.setTimeoutsomeFunc,3000;传递字符串通常被认为是不好的做法,因为它涉及到调用eval。您是否按照我的回答中的建议尝试了Text.value?我只是想看看这对你是否也有用。在我的测试中,使用IE时最为一致。