Firebug informa un error de "devolución no en función" sin ubicación (bueno, línea 1 de nada). ¿Cómo puedo rastrear el origen de este error?Retorno no en la función
return not in function
[Break on this error] return(0)
javascript:return... (line 1)
Estoy ejecutando FireBug 1.05 en FF 2.0.0.20 en Ubuntu.
he encontrado una solución que funciona (para esta configuración):
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; };
}
El código fue en un bucle en el que el id estaba cambiando, que requiere la función de captura.
Antiguamente el href era 'javascript: return 0' y la función de captura no devolvía el mensaje falso directamente, sino que usaba el resultado de fn, y había una ruta cuando devolvía el equivalente de verdadero. El href estaba siendo evaluado causando el error.
La definición de href como '#' o '' provocó que todos los enlaces aparecieran como ya visitados. No definir href en absoluto provocó que no haya ningún enlace resaltado. Esto parecía más simple.
Parece que sí. Estoy usando javascript para generar un enlace con una función onclick y estableciendo el atributo href del enlace. La función onclick devuelve falso al final de su operación y pensé que esto evitaría que se evaluara el href. Como esto acaba de comenzar, me pregunto si algo anterior en la función onclick se está comportando de manera diferente. – dougfelt
¿Podríamos ver el código exacto de su enlace?"Devolver falso" está bien dentro de un clic; detiene el href de ser evaluado. Pero si lo usa de esta manera, el href debería ser una URL, no más JS. –
Esta es una buena explicación de cómo usar onclick para evitar que se carguen los anclajes: http://www.javascripttoolbox.com/bestpractices/#onclick –