Firebug сообщает об ошибке «return not in function» без указания местоположения (ну, в строке 1 ничего нет). Как я могу отследить источник этой ошибки?
return not in function
[Break on this error] return(0)
javascript:return... (line 1)
Я использую FireBug 1.05 на FF 2.0.0.20 в Ubuntu.
Я нашел решение , которое работает (для этой конфигурации):
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; };
}
Код был в цикле, в котором менялся идентификатор, что требовало функции захвата.
Раньше href был 'javascript: return 0', и функция захвата не возвращала false напрямую, вместо этого использовался результат fn, и был путь, когда он возвращал эквивалент true. Href был оценен, вызывая ошибку.
Определение href как '#' или '' заставило все ссылки появиться как уже посещенные. Отсутствие определения href привело к тому, что ссылки не выделялись. Это казалось самым простым.