ebody: jQuery Element selektieren, welches über ein externes Script generiert wird

Beitrag lesen

Hi Rolf,

erstmal vielen Dank für die sehr ausführliche Hilfe!

Das Script, was ich gepostet habe funktioniert bei mir. Allerdings zeigen mir Deine Hinweise, dass das alles nicht wirklich eine gute Lösung ist. Daher 2 Gedanken/Fragen vorab:

  1. Ich bastel mir einen eigenen Cookiebanner. Existiert der entsprechende Cookie nicht, erscheint es. Über den "OK" Button wird ein Cookie gesetzt. Darauf könnte ich viel leichter und genauer reagieren. Das hört sich an, als ließe sich das recht schnell und mit wenig Code umsetzen oder unterschätze ich das und gibt es da vieles zu Bedenken?

  2. Kann man statt das DOM ganze zeit zu "überwachen", evtl. die Cookies kontrollieren und auf eine Änderung reagieren, ohne setInterval oder ähnliches wie hier? https://stackoverflow.com/questions/14344319/can-i-be-notified-of-cookie-changes-in-client-side-javascript

cookies.onChanged funktioniert leider nicht im IE

Noch zum Script, siehe Kommentare /* ... ***/ **



/*** So könnte man MutationObserver noch weiter einschränken: 
wenn Cookie nicht existiert, dann { ***/


MutationObserver = window.MutationObserver || window.WebKitMutationObserver;

	var observer = new MutationObserver(function(mutations, observer) {

					if (document.readyState === 'complete'){
					
						console.log("complete");
						
						$("a.cc_btn.cc_btn_accept_all").click(function(){
						
							//console.log($("a.cc_btn.cc_btn_accept_all").text());
							console.log("Cookie wurde gesetzt");
              
              /*** Wenn der Cookie gesetzt wurde, wird MutationObserver beendet ***/
              // Observer beenden
              observer.disconnect();

							
						});
						
					}
							
							
				});

  // define what element should be observed by the observer
	// and what types of mutations trigger the callback
	observer.observe(document, {
		childList: true,
		subtree: true
	});			

Ansonsten wüsste ich gerade nicht, wo das DOM noch geändert wird bei mir auf der Seite. Daher würde das evtl. schon so reichen.

Gruß ebody