问题描述
我试图在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);