[ad_1]
Xin chào tất cả mọi người. Tôi đang cố gắng tìm nạp một số nội dung từ một trang web, trang html hiển thị dữ liệu với một số trang, mỗi nội dung trang chứa các mục div 6 × 15.
Ở cuối các mục div này có liên kết các nhãn trang như trang trước..trang 1..trang 2.. trang 3…. trang tiếp theo.. , thuộc tính ‘href’ của các nhãn này liên kết đến ‘location.href’ khác nhau.
Tôi muốn viết một đoạn mã javascript trên bảng điều khiển F12 để lấy tất cả thông tin về các mục div này. Tôi không chắc nó có thể làm cho nó hoạt động được không.
Tất cả những gì tôi biết BOM có một đối tượng toàn cầu, window, tôi đang theo dõi sự kiện của đối tượng toàn cầu này, hy vọng nắm bắt được sự kiện tải trang mới khi nhấp vào từng nhãn trang, sau đó sử dụng tài liệu DOM để tìm nạp các mục div.
Những gì tôi đã thử:
đoạn mã giống như thế:
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(); });
Khi tôi nhấp vào nhãn trang đầu tiên, cố gắng kích hoạt vòng lặp của từng mục trang đang cập nhật, trong khi bảng điều khiển DevTool dường như thay đổi sang ngữ cảnh mới, mã js KHÔNG hoạt động.
Vì cửa sổ BOM là một đối tượng chung và tôi không mở cửa sổ mới nên nội dung trang mới được tải trên cùng một cửa sổ, tại sao sự kiện ‘tải’ cửa sổ không được kích hoạt trong trang nội dung mới khi tôi nhấp vào nhãn trang cái nào đã thay đổi location.href ?
Giải pháp 1
Thứ nhất, điều này là trái đạo đức nếu không có sự cho phép của chủ sở hữu trang web, điều này có thể gây thêm căng thẳng cho máy chủ của anh ấy vì lợi ích của bạn!
Để nhấp vào một phần tử trên trang web, bạn cần lấy id phần tử đó và sử dụng phần tử đó để tự động nhấp vào, trong trường hợp này là phần tử ‘a’ để tải các trang. Các phần tử ‘a’ được chứa trong div có id ‘paginator’, chọn từng phần tử bên trong và nhấp vào nó –
<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>
[ad_2]
コメント