使用Greasemonkey更新onclick的字符串值

时间:2009-12-31 19:41:40

标签: javascript firefox xpath greasemonkey onclick

我正在尝试编写一个Greasemonkey脚本来更新页面上一堆链接的onclick值。 HTML看起来像这样:

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

我需要将Javascript的url-99.asp部分更新为urlB-99.asp之类的内容。在我的脚本中,我正在使用XPath表达式收集所有链接并迭代它们:

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;
}

如果我尝试alert(el.onclick),我在控制台中出错:

Component is not available

我已经阅读了unsafeWindow和其他Greasemonkey功能,我了解如何使用新的onClick事件为该链接设置事件处理程序,但是如何将当前的onclick值读入字符串以便我可以操作它并更新元素?

1 个答案:

答案 0 :(得分:1)

你试过el.getAttribute("onclick")吗?

并使用//td[@class="my-class"]/a代替