Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery Uncaught RangeError:使用setTimeout时超出了最大调用堆栈大小_Javascript_Jquery - Fatal编程技术网

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

Javascript jQuery Uncaught RangeError:使用setTimeout时超出了最大调用堆栈大小,javascript,jquery,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(

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

<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>
但在我的chrome浏览器上,我遇到了以下错误:

未捕获范围错误:超过最大调用堆栈大小`


myfile.txt
会动态更改,因此每当它找到我要查找的文本或找不到文本时,它都会播放不同的声音,而无需刷新浏览器。如何解决这个问题?

我找到了问题的原因,是
document.write()
造成的。在我摆脱了
document.write()
之后,一切都很顺利。谢谢

您是否尝试增加超时延迟?这与问题无关,但请注意,您将
cache:false
作为参数发送到请求,而不是停止jQuery缓存响应。如果要停止缓存,请使用
$.ajax
并设置
cache:false
,或调用
$.ajaxSetup([cache:false})
在您的
$请求之前。获取
请求。wm.wav和wb.wav文件的大小是多少?您是否尝试过在不加载这些文件的情况下加载这些文件?您是否可以在a中设置一个此问题的示例,因为我看不出此代码中出现错误的原因。您确定是此代码块导致了问题?该代码段中没有任何内容在我看来,这显然是“错误的”。你能缩小具体的破坏范围吗?
Line one
line two
Hello World
line four