编程语言
首页 > 编程语言> > javascript-要进行大量递归,这段代码是做什么的?

javascript-要进行大量递归,这段代码是做什么的?

作者:互联网

我已经实现了此脚本的一部分,以帮助我进行调试

var ZFDebugLoad = window.onload;
window.onload = function(){
   if (ZFDebugLoad) {
      ZFDebugLoad();
   }
   ZFDebugCollapsed();
};

萤火虫给我的错误“错误太多递归中断”

对我来说,代码看起来像是一个无休止的循环,所以我想知道为什么原始作者将其放入.函数中也没有返回值,因此ZFDebugLoad永远不会有值.

编辑此错误的实际原因(对于遵循我所做的同一教程的其他任何人,导致错误的原因是此行

$response->setBody(preg_replace('/(<head.*>)/i', '$1' . $this->_headerOutput(), $response->getBody()));

使用正则表达式模式/(\u0026lt;head.*\u0026gt;)/i,这导致脚本被附加到我的HTML5< header>中.标签,要纠正此错误,我在模式/\u0026lt;head(?!er).*?\u0026gt;/i中插入了一个空格

解决方法:

ZFDebugLoad保存window.onload的旧值,然后将其替换为另一个函数.

在窗口加载时,它首先运行原始功能(如果有),然后运行ZFDebugCollapsed.
您不需要返回值.在JavaScript中,功能就是价值. if(ZFDebugLoad)检查ZFDebugLoad是否未定义,即在运行脚本之前是否已经具有window.onload函数.如果未定义,则可以执行.

标签:zend-debugger,javascript
来源: https://codeday.me/bug/20191102/1994517.html