it-swarm-es.tech

Cómo reposicionar el mensaje de notificación generado por el complemento CookieMonster

Estoy usando plugin 'Cookie Monster' de herdboy que genera un mensaje de notificación de cookies que se muestra como un div en la parte superior/inferior de su página o como una superposición. Las opciones básicas del complemento limitan el posicionamiento del mensaje de notificación en la parte superior de su página o en la parte inferior (esto se ilustra en el enlace). Sin embargo, quiero configurar el mensaje para que aparezca dentro de un div específico de mi elección.

Puedo ver que dentro del archivo JS del complemento, su elección en las opciones básicas significa que el mensaje se posicionará usando $('body').prepend o $('body').append. Edité el archivo js para reemplazar 'body' con '#myDiv'.

Mi problema es que incluso después de haber cambiado el archivo JS del complemento, el mensaje continúa apareciendo como el primer div en la etiqueta del cuerpo (es decir, antepuesto al cuerpo). He comprobado todos los demás archivos en el plugins/system/cookiemonster ubicación, y el único archivo que parece hacer referencia a la inyección del marcado de mensajes en el sitio es el archivo JS. No puedo ver ningún error básico de JS, y definitivamente no es un problema de almacenamiento en caché.

¿Qué es lo que potencialmente me estoy perdiendo?

1
Candlejack

Habiendo establecido que editar el propio archivo JS del complemento no era viable (aunque todavía no estoy seguro de la razón exacta), decidí anular el complemento JS en el archivo JS principal del proyecto:

$(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 es la clase relevante del marcado generado por el complemento Cookie Monster. En el código del proyecto real, se verifican algunas otras condiciones en la función CookieMessagePosition, pero estas son irrelevantes para la pregunta y no afectan la respuesta.

El tiempo de espera (20 ms en este caso) es una precaución para asegurarse de que el marcado relevante se haya cargado en el DOM antes de que CookieMessagePosition intente reposicionar algo.

1
Candlejack

Casi difícil obtener respuestas válidas sobre tales preguntas, sin que alguien tenga acceso a toda la página y al código.

Sin embargo, una cosa que debe asegurarse es que el #yourDiv elemento existe y es único en el DOM. Si sus cambios en el plugin js hubiera estado bien, probablemente no se vería si tu elemento no estuviera allí.

Como solución alternativa, aunque no sé dónde desea que aparezca el mensaje Cookies, podría sugerirle que cree algunas anulaciones css para él, dándole una posición absoluta o fija, para colocarlo donde desee, y algunos box-shadow mezclado con otros css trucos para que se destaque del resto del contenido.

0
FFrewin