Greasemonkey - 查找链接并添加其他链接

时间:2011-12-20 21:02:43

标签: javascript html greasemonkey

我们有一个基于网络的工作内部库存。我正在寻找在页面上的链接下添加一个链接。没有ID或类可供我使用。每个链接至少我想在它下面添加一些东西,从NFD开始。我基本上需要提取链接文本(而不是链接本身显示给最终用户的文本),并在我的网址中使用它来调用网址以进行远程处理。

var links = document.evaluate("//a[contains(@href, 'NFD')]", document, null, 
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); 
for (var i=0; i < links.snapshotLength; i++) 
{ 
  var thisLink = links.snapshotItem(i); 
  newElement = document.createElement("p");
  newElement = innerHTML = '&nbsp;&nbsp;<a href="' + url + '">Remote</a>';
  thisLink.parentNode.insertBefore(newElement, thisLink.nextSibling);
  //thisLink.href += 'test.html'; 
} 

编辑:

我正在寻找的基本上是我有一个链接<a href="http://blargh.tld/Search-Computer.asp?Computer=NFDM0026">NFDM0026</a>我想在下面添加一个链接,使用wickets内部的文本,所以我希望NFDM0026制作一个自定义链接来调用url使用那。就像说一个vnc查看器。 NFDM0026当然会改变为不同的名称。

1 个答案:

答案 0 :(得分:2)

以下是如何做你想做的事情(没有jQuery;考虑添加那个精彩的图书馆):

//--- Note that content search is case-sensitive.
var links = document.querySelectorAll ("a[href*='NFD']");

for (var J = links.length-1;  J >= 0; --J) { 
    var thisLink            = links[J]; 
    var newElement          = document.createElement ("p");
    var newURL              = thisLink.textContent.trim ();
    newURL                  = 'http://YOUR_SITE/YOUR_URL/foo.asp?bar=' + newURL;
    newElement.innerHTML    = '&nbsp;&nbsp;<a href="' + newURL + '">Remote</a>';

    InsertNodeAfter (newElement, thisLink);
} 

function InsertNodeAfter (newElement, targetElement) {
    var parent  = targetElement.parentNode;
    if (parent.lastChild == targetElement)
        parent.appendChild  (newElement);
    else
        parent.insertBefore (newElement, targetElement.nextSibling);
}