使用页面上的Settimeout方法提交



我需要在网站中获取一个可用的列表项目,以列出分页样式的项目。我将在每个页面上提取项目的信息。我使用settimeout(function(){...code...}, 5000)编写了JavaScript代码,然后在Firefox Web控制台中运行此代码。脚本获取页面中的所有项目,一旦完成,脚本就通过执行超链接的click()方法" Next"。这将持续到页面具有"下一步"。页面中的超链接(在上一页中仅在"背面"中"超链接如果存在)。在每个页面上,我超时到5秒。

我在Firefox Web控制台中执行了此代码,该代码成功运行,并获取第一页结果,然后提交页面,下一页也加载了。但是,问题是,一旦页面提交了脚本停止。即使下一页加载后,如何连续运行此脚本?还有其他方法可以实现此功能吗?

var inc=0;
var ids;
var main=function(){
console.log("attempiting..............."+inc);
var i=0;
{
    ids[inc]=b();//function, fetch the items from the page
    console.log(ids);
    var more=document.getElementById("m_more_item");
    if(more){
        //next link is there
        var cli=more.getElementsByTagName("a");
        console.log("navigating to next page "+cli[0]);
        inc++;
        setTimeout(main,5000); //I tried placing this after click, but didnt work!
        cli[0].click(); //submitting...
    } else {
        //last page reached, exiting...
        console.log("exit1-> total items fetched are: "+ids);
        return ids;
    }
}
};
main();
setTimeout(cli[0].click, 5000);

欢呼。

编辑:很长时间发表评论,所以我将其添加为答案。

您可以在分离的页面中使用ajax呼叫,首先用启动= 1的ajax调用页面,并在此请求的成功下解析数据并根据需要收集信息,并且不要忘记下一个请求的weep lastitemindex,并发布您需要的另一个AJAX呼叫所需的有关第二个AJAX呼叫的成功的呼叫,首先= start = lastIteMindex 1。

这些电话应该做您想要的。

我建议对此使用jQuery,因为很容易调用Ajax并解析响应。

最新更新