diff --git a/Userland/Libraries/LibWeb/DOM/EventTarget.cpp b/Userland/Libraries/LibWeb/DOM/EventTarget.cpp index 82cdcd5aac..f3b35d8a33 100644 --- a/Userland/Libraries/LibWeb/DOM/EventTarget.cpp +++ b/Userland/Libraries/LibWeb/DOM/EventTarget.cpp @@ -735,4 +735,13 @@ bool EventTarget::dispatch_event(Event& event) return EventDispatcher::dispatch(*this, event); } +bool EventTarget::has_event_listener(FlyString const& type) const +{ + for (auto& listener : m_event_listener_list) { + if (listener->type == type) + return true; + } + return false; +} + } diff --git a/Userland/Libraries/LibWeb/DOM/EventTarget.h b/Userland/Libraries/LibWeb/DOM/EventTarget.h index e3656435cd..cf83892e57 100644 --- a/Userland/Libraries/LibWeb/DOM/EventTarget.h +++ b/Userland/Libraries/LibWeb/DOM/EventTarget.h @@ -54,6 +54,8 @@ public: WebIDL::CallbackType* event_handler_attribute(FlyString const& name); void set_event_handler_attribute(FlyString const& name, WebIDL::CallbackType*); + bool has_event_listener(FlyString const& type) const; + protected: explicit EventTarget(JS::Realm&);