Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menjeda Pelaksanaan JavaScript Sehingga Elemen DOM Tertentu Muncul?

Bagaimanakah Saya Boleh Menjeda Pelaksanaan JavaScript Sehingga Elemen DOM Tertentu Muncul?

Patricia Arquette
Lepaskan: 2024-12-09 14:46:14
asal
885 orang telah melayarinya

How Can I Pause JavaScript Execution Until a Specific DOM Element Appears?

Bagaimana untuk Menjeda Kod Anda Sehingga Elemen Muncul?

Dalam pembangunan web, selalunya perlu melakukan tindakan hanya apabila elemen tertentu wujud pada halaman tersebut. Ini menimbulkan persoalan tentang cara menentukan kehadiran elemen, terutamanya dalam persekitaran tak segerak seperti JavaScript.

Penyelesaian: Memanfaatkan API MutationObserver

API MutationObserver menyediakan yang mantap penyelesaian untuk mengesan perubahan dalam DOM. Dengan mencipta tika pemerhati dan memberikannya kepada elemen yang diingini atau induknya, anda boleh menyediakan panggilan balik yang akan dicetuskan apabila mutasi (penambahan, penyingkiran atau perubahan atribut) berlaku dalam kawasan yang diperhatikan.

Pelaksanaan

Coretan kod yang disediakan menunjukkan cara mencipta fungsi waitForElm boleh guna semula menggunakan MutationObserver:

function waitForElm(selector) {
    return new Promise(resolve => {
        if (document.querySelector(selector)) {
            return resolve(document.querySelector(selector));
        }

        const observer = new MutationObserver(mutations => {
            if (document.querySelector(selector)) {
                observer.disconnect();
                resolve(document.querySelector(selector));
            }
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
    });
}
Salin selepas log masuk

Penggunaan

Untuk menunggu elemen dengan kelas 'sesetengah kelas' muncul, anda boleh menggunakan:

waitForElm('.some-class').then((elm) => {
    console.log('Element is ready');
    console.log(elm.textContent);
});
Salin selepas log masuk

Sebagai alternatif, dengan async/menunggu:

const elm = await waitForElm('.some-class');
Salin selepas log masuk

Pendekatan ini menawarkan beberapa kelebihan, termasuk:

  • Tidak Menyekat: Ia menggunakan API MutationObserver, yang memantau perubahan secara pasif tanpa menyekat urutan utama.
  • Tiada Ketergantungan: Ia hanya bergantung pada API asli, mengelakkan keperluan untuk pihak ketiga perpustakaan.
  • Berasaskan Janji: Ia mengembalikan janji, membolehkan anda mengendalikan penampilan elemen dengan mudah dengan .then() atau async/await.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjeda Pelaksanaan JavaScript Sehingga Elemen DOM Tertentu Muncul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan