Firebug is reporting a "return not in function" error with no location (well, line 1 of nothing). How can I track down the source of this error?
return not in function
[Break on this error] return(0)
javascript:return... (line 1)
I'm running FireBug 1.05 on FF 2.0.0.20 on Ubuntu.
I found a solution that works (for this configuration):
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; };
}
The code was in a loop in which the id was changing, necessitating the capture function.
Formerly the href was 'javascript: return 0' and the capture function wasn't returning false directly, instead using the result of the fn, and there was a path when it was returning the equivalent of true. The href was being evaluated causing the error.
Defining href as '#' or '' caused all the links to appear as already visited. Not defining href at all caused there to be no link highlighting. This seemed simplest.
-
I'm going to hazard a guess that this means you have an extra closing brace, or a missing opening brace.
Is your codebase prohibitively large to do a spot check around each of your return functions? Do you have an IDE that highlights matching braces for you?
-
I think the "javascript:return ..." is telling. I believe you're trying to return a value in the
hrefattribute of an anchor, as below:<a href="javascript: return false">Test</a>The reason Firebug isn't telling you the location is because it's not in any JavaScript, but is rather in a one-liner in the DOM.
dougfelt : Looks like it. I'm using javascript to generate a link with an onclick function, and setting the href attribute of the link. The onclick function returns false at the end of its operation and I thought this would prevent the href from being evaluated. Since this just started failing I'm wondering if something earlier in the onclick function is behaving differently.Daniel Lew : Could we see the exact code for your link? "Return false" is okay inside of an onclick; it stops the href from being evaluated. But if you're using it this way, the href itself ought to be a URL, not more JS.Daniel Lew : This is a good explanation for how to use onclick to prevent anchors from being loaded: http://www.javascripttoolbox.com/bestpractices/#onclickdougfelt : Thanks, that was it. -
Javascript returns an error because the return statement is not inside a function. A possible cause for this is incorrect function definition, such as:
myFunc() { some code; return; }where the correct code definition is:
function myFunc() { some code; return; }
0 comments:
Post a Comment