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