Felix Riesterer: Grundlegendes zu JavaScript

Beitrag lesen

Lieber Karl,

meiner Wordpress Webseite www.sem-united.eu.

aha... mit Werbung zu tun.

Für das Kontaktformular verwende ich das Wordpress Plugin Contact-Form 7.

Dagegen ist zunächst nichts einzuwenden.

Um Kontaktanfragen mit Hilfe von Google-Analytics zu tracken

Wiebitte? Was geht Google das an, wenn ich über Dein Kontaktformular eine Anfrage sende? Sieht Google vielleicht gleich auch noch den Inhalt meiner Anfrage? Wozu? Und: Werde ich von Dir auf diesen Umstand ausdrücklich aufmerksam gemacht? Scheint mir nicht der Fall zu sein!

Im Google-Tag-Manager habe ich das entsprechende Event eingerichtet.

Das entsprechende Event nennt sich wie genau?

dataLayer.push({'event': 'gtm4wp.contactForm7Submitted'});

Da wird dem Array dataLayer ein neues Objekt als Element hinzugefügt. Was auch immer der Wert für den Schlüssel "event" bedeuten mag. Ist das etwa der Name des Events?

document.addEventListener( 'wpcf7mailsent', function( event ) {
    dataLayer.push({'event': 'gtm4wp.contactForm7Submitted'});
}, false );

Da wird auf ein Event mit dem Namen "wpcf7mailsent" gelauscht. Dieser Event-Name erscheint in Deinem Posting zum ersten Mal. Bei Eintreten des Events tut Deine Funktion nichts anderes, als dass Sie dem Array dataLayer schon wieder das gleiche Objekt hinzufügt, wie oben bereits besprochen. Warum soll sie das?

  1. Ist das syntaktisch überhaupt korrekt, ich habe leider wenig mit JavaScript am Hut?

Ja, das ist es. Zur Erklärung:

Die Methode addEventListener nimmt drei Argumente entgegen. Das erste ist der Name des Events, bei dem Du wahrscheinlich keine Ahnung hast, auf welches Event Du eigentlich lauschen möchtest (siehe meine Nachfragen oben). Das zweite Argument ist die Funktion, die Du im Ereignisfalle ausführen willst. Die kann man als Funktionsliteral (ausgeschriebenen Funktionscode) direkt notieren, anstatt einer Funktion einen Namen zu geben, um sie dann per Name aufrufen zu lassen:

function tuWas () { return true; }
myElement.addEventListener("click", tuWas);
myOtherElement.addEventListener("click", function () { return true; });
  1. Wie kann ich überprüfen, ob der JS-Code nach dem Absenden des Kontaktformulars auch korrekt ausgeführt wird?

Baue irgendwo in Deinem auszuführenden Code eine sogenannte Debug-Ausgabe ein. Lesetipp: JavaScript/Tutorials/Debuggen für Anfänger

Liebe Grüße,

Felix Riesterer.