// inject-listener.js // Konsolen-Ausgaben für Debugging aktivieren oder deaktivieren const debugEnabled = true; const debugLog = (...args) => { if (debugEnabled) { console.log(...args); } }; debugLog('Injected listener loaded'); // Funktion, um Nachrichten an das globale Fenster zu senden function sendTPmsg(o) { window.postMessage(o, '*'); } // Funktion, um __tpt-Details zu extrahieren und zurückzugeben function getTPDetails() { return window.__tpt ? JSON.parse(JSON.stringify(window.__tpt)) : {}; } // Überprüfung des __tpt Objekts und Versendung des Ergebnisses function checkTPT() { const tpDetails = getTPDetails(); sendTPmsg({ type: 'CHECK_TPT_RESULT', hasTPT: !!tpDetails.cid, tpobj: tpDetails }); } // Proxy Handler zur Überwachung von Änderungen const handler = { set(target, property, value) { target[property] = value; debugLog(`Property ${property} changed to`, value); if (property === 'cid') { checkTPT(); } return true; }, get(target, property) { return target[property]; } }; // Initialisierung des Proxies für das __tpt Objekt if (window.__tpt) { window.__tpt = new Proxy(window.__tpt, handler); } else { Object.defineProperty(window, '__tpt', { set(value) { if (value && typeof value === 'object') { value = new Proxy(value, handler); } Object.defineProperty(this, '__tpt', { value, writable: true, configurable: true, enumerable: true }); checkTPT(); }, configurable: true, enumerable: true }); } window.addEventListener('message', function(event) { if (!event.data || !event.data.type || !event.data.details) return; //console.log('TRACKING_PROXY_REQUEST message 1', event.data); if (event.data.type === 'TRACKING_PROXY_REDIRECT') { //console.log('TRACKING_PROXY_REQUEST message 2', event); const eventData = event.data.details.eventData; const metaData = event.data.details.metaData; if (eventData.cid && window.__tpt && eventData.cid === window.__tpt.cid) { //console.log('Tracking Proxy Event detected:', event); window.postMessage({ type: 'TRACKING_PROXY_RESPONSE', details: { eventData:eventData, metaData:metaData } }, '*'); } else { //console.log('No matching cid found in request body', details); } } }, false); // Timeout zum Beenden des Listeners, wenn __tpt nicht innerhalb von 10 Sekunden erscheint setTimeout(() => { if (!window.__tpt || !window.__tpt.cid) { debugLog('Kein __tpt Objekt gefunden oder keine CID nach 10 Sekunden.'); window.removeEventListener('message', this); } }, 10000); /* (function() { let tpid = ''; //console.log("inject.js loaded"); function checkTPT() { if (!window.__tpt) return; let tpobj = JSON.parse(JSON.stringify(window.__tpt)); console.log('checkTPT result:', tpobj); if (!tpobj.cid) return; window.postMessage({ type: 'CHECK_TPT_RESULT', tpobj:tpobj }, '*'); } // Überprüfe sofort checkTPT(); // Wiederhole die Überprüfung nach einer kurzen Verzögerung, um sicherzustellen, dass das Objekt geladen ist const observer = new MutationObserver((mutations, observer) => { if (window.__tpt && window.__tpt.cid) { //console.log('TP is now available'); checkTPT(); observer.disconnect(); } }); // Starten des MutationObserver if (!window.__tpt && !window.__tpt.cid) observer.observe(document.documentElement, { childList: true, subtree: true }); //console.log('injected listener executed'); })(); */