jQuery Uncaught RangeError:使用setTimeout时超出了最大调用堆栈大小

时间:2016-03-13 11:30:17

标签: javascript jquery

我试图创建一个实时通知脚本,每次在我的文件中找到某个文本时,它都会发出声音。这就是我尝试过的:

<script type="text/javascript" src="jquery-2.1.3.min.js"></script>
<script type="text/javascript">
    function getTextfile() {
        $.get('myfile.txt', { cache:false }, function(data) {
            if (data.indexOf("Hello World") > -1) {
                document.write("Hello World is found");
                var audio = new Audio('wb.wav');
                audio.play();
            } else {
                document.write("It's NOT found");
                var audio = new Audio('wn.wav');
                audio.play();
            } 
            setTimeout(getTextfile, 1000);
        },'text');
    } 
    getTextfile();
</script>

myfile.txt看起来像这样:

Line one
line two
Hello World
line four

但是在我的Chrome浏览器上,我收到了这个错误:

  

未捕获RangeError:超出最大调用堆栈大小

myfile.txt会动态更改,因此每次找到我要查找的文字时,它都会发出不同的声音,或者在我不必刷新浏览器的情况下找不到它。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我发现造成问题的原因是document.write()导致问题。摆脱document.write()后,一切都很完美。谢谢