it-swarm-id.com

Cara memposisikan ulang pesan notifikasi yang dihasilkan oleh plugin CookieMonster

Saya menggunakan plugin 'Cookie Monster' oleh herdboy yang menghasilkan pesan pemberitahuan cookie yang ditampilkan sebagai div di bagian atas/bawah halaman Anda atau sebagai overlay. Opsi plugin dasar membatasi posisi pesan notifikasi baik di bagian atas halaman Anda atau di bagian bawah (ini diilustrasikan dalam tautan). Namun, saya ingin mengatur pesan agar muncul di dalam div tertentu yang saya pilih.

Saya dapat melihat bahwa di dalam file JS plugin, pilihan Anda dalam opsi dasar berarti pesan akan diposisikan menggunakan $('body').prepend atau $('body').append. Saya mengedit file js untuk menggantikan 'body' dengan '#myDiv'.

Masalah saya adalah bahwa bahkan setelah mengubah file JS plugin, pesan terus muncul sebagai div pertama di tag tubuh (mis. Yang diawali dengan tubuh). Saya telah memeriksa semua file lain di plugins/system/cookiemonster lokasi, dan satu-satunya file yang tampaknya merujuk menyuntikkan markup pesan ke situs adalah file JS. Saya tidak bisa melihat kesalahan JS dasar, dan jelas bukan masalah caching.

Apa yang berpotensi hilang?

1
Candlejack

Setelah menetapkan bahwa mengedit file JS plugin sendiri tidak dapat dilakukan (meskipun saya masih tidak yakin alasan pastinya), saya memutuskan untuk mengganti JS plugin dalam file JS utama proyek:

$(window).load(function(){
    // some other
    // project
    // functions here
    cookieMessagePositioning();
});

function cookieMessagePositioning(){
    var cookieTimer = setTimeout(function() {
        $('header.cc-cookies').prependTo('#myDiv');
    }, 20);
}

NB.header.cc-cookies adalah kelas yang relevan dari markup yang dihasilkan oleh plugin Cookie Monster. Dalam kode proyek nyata, kami memiliki beberapa kondisi lain yang diperiksa dalam fungsi CookieMessagePositioning tetapi ini tidak relevan dengan pertanyaan dan tidak mempengaruhi jawabannya.

Batas waktu (20 ms dalam kasus ini) adalah tindakan pencegahan untuk memastikan markup yang relevan dimuat di DOM sebelum CookieMessagePositioning mencoba memposisikan ulang apa pun.

1
Candlejack

Hampir sulit untuk mendapatkan jawaban yang valid pada pertanyaan seperti itu, tanpa seseorang memiliki akses ke seluruh halaman dan kode.

Namun, hal yang harus Anda pastikan adalah elemen #yourDiv Ada dan unik di DOM. Jika perubahan Anda di plugin js Akan baik-baik saja, itu mungkin tidak akan ditampilkan sama sekali, jika elemen Anda tidak ada di sana.

Sebagai solusi alternatif, meskipun saya tidak tahu di mana Anda ingin pesan Cookie muncul, saya dapat menyarankan untuk membuat beberapa css yang menggantikannya, memberikannya posisi absolut atau tetap, untuk menempatkannya di mana pun Anda inginkan, dan beberapa box-shadow dicampur dengan trik css lainnya untuk membuatnya menonjol dari sisa konten.

0
FFrewin