Firebug 正在报告一个没有位置的“返回不在函数中”错误(好吧,第 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 导致没有链接突出显示。这看起来很简单。
最佳答案
我认为“javascript:return ...”很能说明问题。我相信您正在尝试在 anchor 的 href
属性中返回一个值,如下所示:
<a href="javascript: return false">Test</a>
Firebug 不告诉您位置的原因是因为它不在任何 JavaScript 中,而是在 DOM 的单行代码中。
关于javascript - 返回不在函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/795337/