FriendsOfREDAXO / consent_manager

Stellt ein Opt-In Cookie Banner zur Verfügung
MIT License
57 stars 15 forks source link

Funktion showBox auch von außen erreichbar machen #230

Closed tbaddade closed 2 years ago

tbaddade commented 2 years ago

Ich lasse Videos im Modal anzeigen. Das HTML dazu wird per Ajax geladen. Ist das Cookie für Videos nicht gesetzt, erscheint der Button mit der Class consent_manager-show-box-reload um die Zustimmung einzuholen. Ein Klick auf diesen Button öffnet jedoch verständlicherweise nicht das Cookie-Modal.

Daher wäre es sinnvoll, die Funktion showBox von außen erreichbar zumachen. Ich vermute, dass diese derzeit nur lokal ist, da diese innerhalb einer großen anonymen Funktion definiert ist.

IngoWinter commented 2 years ago

https://github.com/FriendsOfREDAXO/consent_manager/blob/master/assets/consent_manager_frontend.js#L94-L98

Einen Klick auf ein Element mit einer der beiden der Klassen triggern sollte machen, was du möchtest.

tbaddade commented 2 years ago

Ich habe noch ein Element im Footer, worauf ich triggere. Dieses Element ist dem JS vom consentManager bekannt.

Derzeit:

watching('.modal .consent_manager-show-box-reload', {
    init() {
        this.$element.on('click', event => $('.footer .consent_manager-show-box-reload').trigger('click'));
    }
});

Angenehmer:

watching('.modal .consent_manager-show-box-reload', {
    init() {
        this.$element.on('click', consent_managerBox.showBox());
    }
});

Das watching ist etwas eigenes, davon nicht irritieren lassen.

aeberhard commented 2 years ago

@tbaddade vielleicht hilft das ja ... Selbst diese Function definieren und die kannst Du dann aufrufen.

function consent_managerBox_showBox() {
    document.getElementById('consent_manager-background').classList.remove('consent_manager-hidden');
}
aeberhard commented 2 years ago

Fixed mit https://github.com/FriendsOfREDAXO/consent_manager/commit/79e80b363bc528eb0359ca49d8f65570647815c4