Firebug 报告没有位置的“return not in function”错误(嗯,没有任何内容的第 1 行)。如何追踪此错误的来源?
return not in function
[Break on this error] return(0)
javascript:return... (line 1)
我在 Ubuntu 上的 FF 2.0.0.20 上运行 FireBug 1.05。
我找到了一个可行的解决方案(对于这个配置):
var link = document.createElement('a');
link.href='/';
if (childSummary.more) {
link.onclick = capture(function(id) { follow(id); }, childSummary.id);
} else {
link.onclick = capture(function(id) { show(id); }, childSummary.id);
}
link.appendChild(document.createTextNode(name));
div.appendChild(link);
[...]
function capture(fn, val) {
return function() { fn(val); return false; };
}
代码在一个循环中,其中 id 正在更改,因此需要捕获函数。
以前href是'javascript:return 0',捕获函数不是直接返回false,而是使用fn的结果,当它返回true时有一个路径。正在评估 href 导致错误。
将 href 定义为 '#' 或 '' 会导致所有链接都显示为已访问过。根本没有定义 href 导致没有链接突出显示。这似乎是最简单的。