كيفية تتبع حدث النافذة عند تغيير location.href؟

برمجة


أهلا بالجميع. أحاول جلب بعض المحتوى من موقع ويب، تعرض صفحة html البيانات بعدة صفحات، ويحتوي كل محتوى صفحة على 6 × 15 عنصر div.
يوجد في الجزء السفلي من عناصر div هذه ربط تسميات الصفحات مثل الصفحة السابقة..الصفحة 1..الصفحة 2.. الصفحة 3…. الصفحة التالية.. السمة “href” لهذه التصنيفات ترتبط بـ “location.href” مختلف.
أريد أن أكتب جزءًا من كود جافا سكريبت على وحدة التحكم F12 لجلب جميع معلومات عناصر div هذه. لست متأكدًا من إمكانية إنجاحه.
كل ما أعرفه هو أن BOM يحتوي على كائن عالمي، نافذة، أنا أتتبع حدث هذا الكائن العام، وآمل في التقاط حدث تحميل الصفحة الجديد عند النقر فوق كل تسمية صفحة، ثم استخدام مستند DOM لجلب عناصر div.

ما حاولت:

الكود شيء من هذا القبيل:

جافا سكريبت
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 هي كائن عالمي، ولم أفتح نافذة جديدة، فقد تم تحميل محتوى الصفحة الجديدة على نفس النافذة، فلماذا لم يتم تشغيل حدث “تحميل” النافذة في صفحة المحتوى الجديدة عندما أنقر فوق تسمية الصفحة
الذي تغير location.href ?

الحل 1

أولاً، هذا ليس أخلاقياً دون إذن مالك الموقع، فقد يزيد هذا من الضغط على خادمه لصالحك!

للنقر على عنصر في موقع ما، يتعين عليك الحصول على معرف العنصر الخاص به واستخدامه للنقر تلقائيًا، وفي هذه الحالة على العنصر “a” لتحميل الصفحات. العناصر “a” موجودة في div بمعرف “paginator”، حدد كل عنصر بداخله وانقر فوقه –

جافا سكريبت
<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をコピーしました