Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 'do JavaScript' still broken in Safari 3 beta



On 6/21/07, David Crowe <email@hidden> wrote:
I think whatever ECMA says about 'return' is meaningless for
Javascript because everything is essentially a function in web
programming with javascript.

Well, first of all, Javascript is a trade name for the language specified by the ECMA-262 specification, which is called "ECMAScript" in the specification itself. So by definition, whatever is in there applies to JavasScript. Whether or not a given Javascript implementation chooses to follow the standard is another matter.


For example, something like <p onclick='afunction()'> has to
implicitly return(true) in order for the browser to know that the
click worked. What if afunction doesn't return true or, worse yet,
returns false? Then you'd have to modify the code to <p
onclick='afunction();return true'> which means you have to consider
the entire onclick javascript string as a function with an implicit
wrapper.

They are, in fact, implemented as anonymous functions (a.k.a. closures). Putting this in your HTML:

<p id="myparagraph" onclick="afunction(); return true">

is exactly equivalent to having this code:

document.getElementById("myparagraph").onclick = function() {
afunction(); return true; }

So the "return" is within a FunctionBody, and therefore syntactically valid.

It's worth noting that, in general, the trend now is away from
embedding Javascript in HTML and toward non-intrusive means of
scripting pages.

--
Mark J. Reed <email@hidden>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/applescript-users/email@hidden
Archives: http://lists.apple.com/archives/applescript-users

This email sent to email@hidden


Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.