Greasemonkey -找到链接并添加另一个链接

Greasemonkey - Find link and add another link

本文关键字:链接 另一个 添加 Greasemonkey      更新时间:2023-09-26

我们在工作中有一个基于网络的内部库存。我正在寻找添加一个链接下说在页面上的链接。没有ID,也没有我可以加入的类。每一个链接,至少我想在它下面添加一些东西,以NFD开始。我基本上需要拉链接文本(不是链接本身的文本,出现在最终用户),并在我的url中使用它来调用远程访问的网址。

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>,我希望现在在下面添加一个链接,使用小门内的文本,所以我想要NFDM0026使用该自定义链接来调用url。比如vnc浏览器。NFDM0026当然会有不同的名称

这是如何做你想要的(不需要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);
}