我已经实现了此脚本的一部分来帮助我进行调试
var ZFDebugLoad = window.onload;
window.onload = function(){
if (ZFDebugLoad) {
ZFDebugLoad();
}
ZFDebugCollapsed();
};
Firebug 给我的错误“错误太多递归中断”
对我来说,代码看起来像是一个无休止的循环,所以我想知道为什么原始作者将其放入。函数中也没有返回值,因此ZFDebugLoad永远不会有值。
编辑导致此错误的实际原因(对于遵循本教程的其他所有人,导致该错误的原因是此行
$response->setBody(preg_replace('/(<head.*>)/i', '$1' . $this->_headerOutput(), $response->getBody()));
它使用正则表达式模式
/(<head.*>)/i
,这导致脚本被追加到我的HTML5 <header>
标记中,为了更正此错误,我在模式/<head(?!er).*?>/i
中插入了一个空格 最佳答案
ZFDebugLoad
保存window.onload
的旧值,然后将其替换为另一个函数。
在load
窗口上,它首先运行原始函数(如果有的话),然后运行ZFDebugCollapsed
。
您不需要返回值。在JavaScript中,功能就是值(value)。 if (ZFDebugLoad)
检查ZFDebugLoad
是否为undefined
,即在运行脚本之前是否已经具有window.onload
函数。如果不是udefined
,则可以执行。