如何在Greasemonkey中替换链接的目标?

时间:2010-04-20 21:05:08

标签: javascript greasemonkey

我正在尝试在Greasemonkey中编写一个脚本,用其他东西替换链接的目标,但是由于我有限的Javascript知识,我真的不知道如何做到这一点。

基本上我正在尝试查找包含特定字符串的所有链接(例如:// a [contains(@ href,'xx')]),并用其他链接替换它们,或者向它们添加内容(将'abc123.com'替换为'zyx987.com'或'abc123.com'替换为'abc123.com/folder')。

如果你能指出我正确的道路,我会非常感激。

编辑:如果将来某人有同样的问题,这是有效的代码:

var links,thisLink;
links = document.evaluate("//a[contains(@href, 'roarrr')]",
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
for (var i=0;i<links.snapshotLength;i++) {
    var thisLink = links.snapshotItem(i);
    thisLink.href += 'test.html';
}

2 个答案:

答案 0 :(得分:2)

var links = document.evaluate("//a[contains(@href, 'roarrr')]", document, null, 
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); 
for (var i=0; i < links.snapshotLength; i++) 
{ 
  var thisLink = links.snapshotItem(i); 
  thisLink.href += 'test.html'; 
} 

答案 1 :(得分:1)

你得到了所需的a元素,并将它们的src设置为:

elem.src = 'http://example.com';

你也可以使用以前的src值:

elem.src += 'index.html';