Updating onclick's string value with Greasemonkey

Posted by Devin McCabe on Stack Overflow See other posts from Stack Overflow or by Devin McCabe
Published on 2009-12-31T19:41:40Z Indexed on 2010/03/22 12:01 UTC
Read the original article Hit count: 681

I'm trying to write a Greasemonkey script to update the onclick value of a bunch of links on a page. The HTML looks like this:

<a onclick="OpenGenericPopup('url-99.asp','popup',500,500,false)" href="javascript:void(0)">text</a>

I need to update the url-99.asp part of the Javascript into something like urlB-99.asp. In my script, I'm collecting all the links with an XPath expression and iterating through them:

var allEl = document.evaluate(
  'td[@class="my-class"]/a',
  document,
  null,
  XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
  null);

for (var i = 0; i < allEl.snapshotLength; i++) {
  var el = allEl.snapshotItem(i);
  //something here;
}

If I try to alert(el.onclick), I get an error in the console:

Component is not available

I've read up on unsafeWindow and other Greasemonkey features, and I understand how to set an event handler for that link with a new onClick event, but how do I read the current onclick value into a string so I can manipulate it and update the element?

© Stack Overflow or respective owner

Related posts about firefox

Related posts about greasemonkey