ti-enxame.com

Como reposicionar a mensagem de notificação gerada pelo plugin CookieMonster

Estou usando o plugin 'Cookie Monster' por herdboy que gera uma mensagem de notificação de cookie exibida como uma div na parte superior/inferior da sua página ou como uma sobreposição. As opções básicas do plug-in limitam o posicionamento da mensagem de notificação na parte superior da página ou na parte inferior (isso é ilustrado no link). No entanto, desejo que a mensagem apareça dentro de uma div específica de minha escolha.

Percebo que dentro do arquivo JS do plug-in, sua escolha nas opções básicas significa que a mensagem será posicionada usando $('body').prepend ou $('body').append. Editei o arquivo js para substituir 'body' com '#myDiv'.

Meu problema é que, mesmo depois de alterar o arquivo JS do plug-in, a mensagem continua sendo exibida como a primeira div na tag body (ou seja, anexada ao corpo). Eu verifiquei todos os outros arquivos no plugins/system/cookiemonster local, e o único arquivo que parece referenciar a injeção da marcação de mensagem no site é o arquivo JS. Não consigo ver nenhum erro básico de JS e definitivamente não é um problema de cache.

O que é que estou sentindo falta?

1
Candlejack

Tendo estabelecido que a edição do arquivo JS do próprio plugin não era viável (embora ainda não tenha certeza do motivo exato), decidi substituir o JS do plugin no arquivo JS principal do projeto:

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

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

Notaheader.cc-cookies é a classe relevante da marcação gerada pelo plugin Cookie Monster. No código real do projeto, algumas outras condições estão sendo verificadas na função CookieMessagePositioning, mas são irrelevantes para a pergunta e não afetam a resposta.

O tempo limite (20 ms neste caso) é uma precaução para garantir que a marcação relevante seja carregada no DOM antes que o CookieMessagePositioning tente reposicionar qualquer coisa.

1
Candlejack

Quase difícil obter respostas válidas para essas perguntas, sem que alguém tenha acesso a toda a página e código.

No entanto, você precisa garantir que o #yourDiv elemento existe e é exclusivo no DOM. Se suas alterações no plugin js teria sido bom, provavelmente não apareceria se o seu elemento não estivesse lá.

Como solução alternativa, embora eu não saiba onde você deseja que a mensagem Cookies apareça, eu poderia sugerir a criação de algumas substituições css para ela, fornecendo posição absoluta ou fixa, para colocá-la onde quiser e alguns box-shadow misturado com outros truques de css para destacar o restante do conteúdo.

0
FFrewin