在搜索每个网址时打开链接然后关闭每个 window 并将网址添加到数组

Openning Links then searching each one of urls then closing each window and adding the urls to an array

我刚开始接触 javascript 并决定创建一个脚本,该脚本将获取 url 的列表并打开每个 url。一旦它打开每个 url,它就会在页面中搜索特定的 Href,然后将其添加到全局 var 数组中。到目前为止,我有一些函数可以创建我想要搜索的 url 的列表,但是我搜索每个 window 的函数似乎不起作用。当我调试它在 Onload 函数中打印出当前文档 url 时,它只打印出 1 url。

如何在不使用 jquery 的情况下完成上述过程? 感谢您的帮助!

这是我的代码。

 var yearLinksArray =[];
 var deletePages=[];

 function deleter(){
  for (var i = 0; i< document.getElementsByTagName("a").length;i++){
    if (document.getElementsByTagName("a")[i].href.indexOf("remove")!= -1){
      console.log(document.getElementsByTagName("a")[i].href);
    }

  }

}

function yearLinks(){
  var links = [];
  var deletePages =[];

  var yearLink = "month_2015_2"

   for (var i = 0; i< document.getElementsByTagName("a").length;i++){
    if (document.getElementsByTagName("a")[i].href.indexOf("year_")!= -1){
      links.push(document.getElementsByTagName("a")[i].href);
      deletePages.push(document.getElementsByTagName("a")[i].href);

    }

  }

  return links;


}

function addPages(){
  console.log(document.URL);
  for(var year =2015;year!= 2008;year--){
    for (var month =12;month!=0;month--){
      var yearLink = "month_"+year+"_"+month;



      for (var i = 0; i< window.document.getElementsByTagName("a").length;i++){
        if (window.document.getElementsByTagName("a")[i].href.indexOf(yearLink)!= -1){

          //console.log(document.getElementsByTagName("a")[i].href);
          deletePages.push(window.document.getElementsByTagName("a")[i].href);
        }

  }


    }
  }   


}

function searcher(link){

  window.open(link);
  window.onLoad= addPages();

}



yearLinksArray = yearLinks();
for(var i=0;i <yearLinksArray.length;i++){
  searcher(yearLinksArray[i]);

};

这个函数是错误的:

function searcher(link){
  window.open(link);
  window.onLoad= addPages();
}

它将 onload 处理程序添加到当前 window,而不是您刚刚打开的 window。它还立即调用 addPages 函数,并将结果分配给 window.onload;您应该将 onload 属性 设置为函数本身。

function searcher(link) {
    var win = window.open(link);
    win.onload = addPages;
}

请注意,如果您加载的页面与您的脚本位于不同的域中,则其中的 none 将起作用。 Javascript 无法访问不同域中 windows 的内容。