it-swarm.com.de

So positionieren Sie die vom CookieMonster-Plugin generierte Benachrichtigungsnachricht neu

Ich verwende das Plugin 'Cookie Monster' von herdboy , das eine Cookie-Benachrichtigung erzeugt, die entweder als div oben/unten auf Ihrer Seite oder als Overlay angezeigt wird. Die grundlegenden Plugin-Optionen beschränken die Positionierung der Benachrichtigungsnachricht entweder oben auf Ihrer Seite oder unten (dies wird im Link dargestellt). Ich möchte jedoch festlegen, dass die Nachricht in einem bestimmten Bereich meiner Wahl angezeigt wird.

Ich kann sehen, dass in der JS-Datei des Plugins Ihre Auswahl in den Basisoptionen bedeutet, dass die Nachricht entweder mit $('body').prepend oder $('body').append positioniert wird. Ich habe die js-Datei bearbeitet, um 'body' Durch '#myDiv' Zu ersetzen.

Mein Problem ist, dass die Nachricht auch nach dem Ändern der JS-Datei des Plugins weiterhin als erstes Div im Body-Tag angezeigt wird (dh dem Body vorangestellt). Ich habe alle anderen Dateien am Speicherort plugins/system/cookiemonster Überprüft. Die einzige Datei, die anscheinend auf das Einfügen des Nachrichten-Markups in die Site verweist, ist die JS-Datei. Ich kann keine grundlegenden JS-Fehler erkennen und es handelt sich definitiv nicht um ein Caching-Problem.

Was fehlt mir möglicherweise?

1
Candlejack

Nachdem ich festgestellt hatte, dass die Bearbeitung der eigenen JS-Datei des Plugins nicht möglich war (obwohl der genaue Grund noch nicht bekannt ist), entschied ich mich, die JS-Datei des Plugins in der Haupt-JS-Datei des Projekts zu überschreiben:

$(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 ist die relevante Klasse aus dem vom Cookie Monster-Plugin generierten Markup. Im realen Projektcode werden in der CookieMessagePositioning-Funktion einige andere Bedingungen überprüft, die jedoch für die Frage irrelevant sind und die Antwort nicht beeinflussen.

Das Timeout (in diesem Fall 20 ms) ist eine Vorsichtsmaßnahme, um sicherzustellen, dass das relevante Markup in das DOM geladen wurde, bevor CookieMessagePositioning versucht, etwas neu zu positionieren.

1
Candlejack

Es ist fast schwierig, gültige Antworten auf solche Fragen zu erhalten, ohne dass jemand Zugriff auf die gesamte Seite und den gesamten Code hat.

Sie müssen jedoch sicherstellen, dass die #yourDiv -Element existiert und ist im DOM eindeutig. Wenn Ihre Änderungen in der plugin js wäre okay gewesen, es würde sich wahrscheinlich überhaupt nicht zeigen, wenn dein Element nicht da wäre.

Obwohl ich nicht weiß, wo die Cookie-Nachricht angezeigt werden soll, kann ich als alternative Problemumgehung vorschlagen, einige css Überschreibungen zu erstellen, um sie an einer absoluten oder festen Position zu platzieren, wo immer Sie möchten, und etwas box-shadow gemischt mit anderen css Tricks, um sich vom Rest des Inhalts abzuheben.

0
FFrewin