如何遍历链接数组中的每个链接



嘿伙计们,我有一个篡改猴子脚本,我正在编写它来从网页上抓取链接,将它们存储到数组中,然后以某种方式遍历数组的每个链接以获取这些链接中的信息。

因此,假设我有一个数组"turls",其中包含从主页抓取的25个链接,我使用window.location.href进入链接和window.history.back((返回主页。一旦我返回主页,脚本将再次运行,并再次进入第一个链接。

我想我可以在回到主页后继续下一个链接,所有链接都带有GM_setvalue和GM_getvalue,但是如何呢?我不确定如何通过所有 25 个链接来执行此操作。

提前感谢,

(同样是控制台.log网址和 turl 的结果在 Chrome 控制台中显示为 300 的数组和 25 的数组,但是当我在 Chrome 控制台中键入 console.log(urls( 或 console.log(turls( 时,没有定义 url 和 turls。

// ==/UserScript==

(function() {
'use strict';
   var urls= [];
var turls = [];

$( document ).ready(function() {
    for (var i= document.links.length; i-->0;){
        if (document.links[i].hostname===location.hostname){
            if (document.links[i].href.indexOf("tournaments") > -1) {
                turls.push(document.links[i].href);    
            }
            urls.push(document.links[i].href);
        }
    }    
});

console.log(urls); 
console.log(turls);  



})();

试试这个。

// @grant GM_setValue
// @grant GM_getValue
(function() {
  'use strict';
  var turls = GM_getValue('turls', []);
  if(turls.length == 0) {
    $(document).ready(function() {
      for (var i = 0; i<document.links.length; i++) {
        if (document.links[i].hostname === location.hostname) {
          if (document.links[i].href.indexOf("tournaments") > -1) {
            turls.push(document.links[i].href);
          }
        }
      }
    });
  }
  if(turls.length > 0) {
    var turl = turls.shift();
    GM_setValue('turls', turls);
    window.location.href = turl;
  }
})();

要在窗口加载时将值保留在 TamperMonkey 脚本中,即强制脚本重新加载,您需要使用 GM_setValueGM_getValue 跨会话存储和检索值。

最新更新