I have written a more generic function the
perfectly fits my needs. So if someone is interessted, feel free
to use it.
// simulate mouse click on element
function $click( elm, root ) {
// create mouseclick element
var evt = document.createEvent( 'MouseEvents' );
evt.initEvent( 'click', true, true );
// id, class, tag, name or node itself?
var node;
if( typeof elm == 'string' ) {
if( elm[0] == '#' ) node = $( elm, root )
else node = $( elm, root )[0];
} else node = elm;
// click node
node.dispatchEvent( evt );
}
// Get Elements
function $( q, root, single ) {
if( root && typeof root == 'string' ) {
root = $( root, null, true );
if( !root ) { return null; }
}
root = root || document;
if( q[0] == '#' ) { return
root.getElementById(q.substr(1)); }
else if( q[0] == '/' || ( q[0] == '.' && q[1] ==
'/' ) ) {
if( single ) { return document.evaluate(q, root, null,
XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; }
return document.evaluate(q, root, null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
} else if( q[0] == '.' ) { return
root.getElementsByClassName(q.substr(1)); }
else if( q[0] == ':' ) { return
root.getElementsByName( q.substr(1)); }
else if( q[0] == '<' ) { return
root.getElementsByTagName( q.substr(1)); }
return root.getElementsByTagName(q);
}
Regards,
Robert
-------- Original-Nachricht --------
Betreff: Re: [greasemonkey-users] Acting like a user?