gpt4 book ai didi

javascript - 搜索每个网址时打开链接,然后关闭每个窗口并将网址添加到数组中

转载 作者:行者123 更新时间:2023-12-03 10:48:10 24 4
gpt4 key购买 nike

我刚刚开始接触 javascript,并决定创建一个脚本,该脚本将获取 url 列表并打开每个 url。一旦它打开每个 url,它就会在页面中搜索某个 Href,然后将其添加到全局 var 数组中。到目前为止,我有创建我想要搜索的网址列表的函数,但搜索每个窗口的函数似乎不起作用。当我调试它以在 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 处理程序添加到当前窗口,而不是您刚刚打开的窗口。它还立即调用addPages函数,并将结果分配给window.onload;您应该将 onload 属性设置为函数本身。

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

请注意,如果您正在加载的页面与脚本位于不同的域中,则这些都不起作用。 JavaScript 无法访问不同域中的窗口内容。

关于javascript - 搜索每个网址时打开链接,然后关闭每个窗口并将网址添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com