EventTargetExtensions
A set of extensions for EventTarget objects.
using AngleSharp.Dom;
using AngleSharp.Dom.Events;
using AngleSharp.Html;
using System;
using System.Threading.Tasks;
namespace AngleSharp.Extensions
{
internal static class EventTargetExtensions
{
public static bool FireSimpleEvent(this EventTarget target, string eventName, bool bubble = false, bool cancelable = false)
{
Event event = new Event();
event.IsTrusted = true;
Event event2 = event;
event2.Init(eventName, bubble, cancelable);
return event2.Dispatch(target);
}
public static bool Fire<T>(this EventTarget target, Action<T> initializer, EventTarget targetOverride = null) where T : Event, new
{
T val = new T();
val.IsTrusted = true;
T obj = val;
initializer(obj);
return obj.Dispatch(targetOverride ?? target);
}
public static void FireLoadOrErrorEvent(this EventTarget target, Task task)
{
if (task.IsFaulted || task.Exception != null)
target.FireSimpleEvent(EventNames.Error, false, false);
else
target.FireSimpleEvent(EventNames.Load, false, false);
}
}
}