在页面中搜索特定的URL,然后将第一个实例复制到剪贴板

问题描述

我试图在iOS中设置快捷方式,该快捷方式在当前网页中搜索以https:// rapidgator开头的网址,然后将找到的第一个实例的完整网址复制到剪贴板。我找到了一个对磁铁链接执行此操作的代码,并更改了这一行代码

const magnetScheme = "magnet:";

告诉它寻找“ https:// rapidgator”

const magnetScheme = "https://rapidgator";

但是这会复制它找到的所有实例,而不仅仅是它发现的第一个实例。

这是我正在使用的完整代码,然后将JavaScript结果传递到剪贴板。

var links= document.querySelectorAll("a");
var magnets = [];

 for (var link of links) 
{
var href = link.getAttribute("href") || "";
const magnetScheme = "magnet:";

if (!href.startsWith(magnetScheme)) 
{
  continue;
}

var magnet = href

// Don't add duplicates
if (magnets.indexOf(magnet) === -1) 
{
    magnets.push(magnet);
}
}

completion(magnets);

在此先感谢您的帮助。

解决方法

警告:给定代码仅在锚元素中查找url(请参见注释),仅返回第一个的简单方法是在找到一个后退出循环:

var links= document.querySelectorAll("a");
var magnets = [];

 for (var link of links) 
{
var href = link.getAttribute("href") || "";
const magnetScheme = "magnet:";

if (!href.startsWith(magnetScheme)) 
{
  continue;
}

var magnet = href; // we’ve got one
magnets.push(magnet);// put it into the returnable array
break;// and leave the loop

/* the following code is redundant as we aren’t looking for more than one
// Don't add duplicates
if (magnets.indexOf(magnet) === -1) 
{
    magnets.push(magnet);
}

冗余代码结尾* / }

completion(magnets);