Tach!
Ich versuche, zu verstehen.
Dieser "Infinitiv mit zu" ist nicht erweitert, also kommt da kein Komma.
Der Spezial-Klick, der function setCookie() aufruft, entfernt den button, um stattdessen die Erfolgsmeldung „gespeichert“ anzuzeigen. Erst nach der Anzeige wird the cookie gesetzt.
Der Cookie spielt keine Rolle bei dem Problem.
Zeitlich parallel versucht der Standard-Klick, the parent von <button> zu erkennen, aber <button> wurde kurz vorher gestorben und Tote im „Nirwana“ haben beim Firefox keine Eltern mehr.
Der Button existiert weiterhin, aber er ist nicht mehr im DOM. Erst wenn alle Referenzen darauf weg sind, kann er wirklich verschwinden. Weil er noch existiert, ist in obj deines mit addEventListener hinzugefügten Eventhandlers der Button selbst noch verfügbar. Nur sein Bezug zum Elternelement ist nicht mehr da, weil das P noch im DOM ist, er aber nicht mehr.
Sofort wird die parallel laufende function setCookie() abgebrochen, der vorschnellen Erfolgsmeldung folgt nicht mehr das Setzen des Cookies.
In Javascript läuft nichts parallel. setCookie() wird zuerst vollständig abgehandelt, danach kommt der addEventListener-Handler zum Zug.
dedlfix.