当location.href更改时如何跟踪窗口事件?

编程


大家好。 我正在尝试从网站获取一些内容,html 页面显示多个页面的数据,每个页面内容包含 6 × 15 div 项目。
在这些 div 项目的底部,有 链接页面标签如上一页..第1页..第2页..第3页….下一页..,这些标签的属性“href”链接到不同的“location.href”。
我想在 F12 控制台上编写一段 javascript 代码来获取所有这些 div 项目信息。 我不确定是否有可能让它发挥作用。
我只知道BOM有一个全局对象,window,我正在跟踪这个全局对象的事件,希望在单击每个页面标签时捕获新页面加载事件,然后使用DOM文档获取div项。

我尝试过的:

代码是这样的:

JavaScript
window.addEventListener('load', () => {
    //1.fetch div items
    //for(var item of document.querySelectorAll('div.item')) {}
    
    //2.find next page label and click
    //var next_page = document.querySelector('a.next');
    //next_page.click();
    
});

当我单击第一页标签时,尝试触发每个页面项更新的循环,同时,DevTool 控制台似乎更改为新的上下文,js 代码不起作用。
由于BOM窗口是全局对象,并且我没有打开新窗口,新页面内容加载在同一个窗口上,为什么当我点击页面标签时,窗口’load’事件没有在新内容页面中触发
,这改变了location.href?

解决方案1

首先,未经网站所有者许可,这是不道德的,这可能会为了您的利益而给他的服务器增加压力!

要单击站点上的元素,您需要获取其元素 ID 并使用它来自动单击,在本例中为“a”元素来加载页面。 ‘a’ 元素包含在 id 为 ‘paginator’ 的 div 中,选择其中的每个元素并单击它 –

JavaScript
<script>
    window.addEventListener('load', function() {
        //Get all the 'a' elements inside the paginator div...
        var links = document.querySelectorAll('.paginator a');

        //Iterate through each link and trigger a click event for each...
        links.forEach(function(link) {
            link.click();
        });
    });
</script>

コメント

タイトルとURLをコピーしました