On 2009-11-21 10:26, Patrick Wiseman wrote:
> Hello GM'ers:
>
> I'm having a funny problem with this.getAttribute.  Here's a couple of
> code snippets:
>
> function doWhatever() {
>    def=this.getAttribute('id');
> }
>
> This, as expected, assigns the value of 'id' to def.
>
> function doWhatever(abc) {
>    abc ? def=abc : def=this.getAttribute('id');
> }
>
> If abc is present, this assigns abc to def; but if abc is absent, it
> assigns [objectXPCNativeWrapper[objectMouseEvent]] to def (the
> this.getAttribute comes from a mouse click on the element with the
> 'id' attribute).
Is this function an event handler, registered with addEventListener? If 
so, then I suspect that abc is not actually absent, but is being 
populated with the event parameter. Try adding an additional (first) 
parameter to catch the event and do whatever with it -- e.g.

function doWhatever(evt, abc) {

For example, you could use evt.target.id instead of this.getAttribute, I 
think.

> Any other combination does the same thing -
> def=this.getAttribute('id'), which works by itself, breaks the moment
> I try to assign it only if abc is absent.  I have the feeling I'm
> missing something obvious, but I'm trying to write ONE function which
> will behave the same way if passed a value or if getting a value from
> a clicked element.
>
> Any thoughts would be appreciated.
>
> pw
>    

--

You received this message because you are subscribed to the Google Groups 
"greasemonkey-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/greasemonkey-users?hl=.


Reply via email to