diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 94a9e7e72a4..b2dfa61ea7f 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -45,6 +45,9 @@ struct event_target_t {
handler_vector_t *event_table[EVENTID_LAST];
};
+static const WCHAR abortW[] = {'a','b','o','r','t',0};
+static const WCHAR onabortW[] = {'o','n','a','b','o','r','t',0};
+
static const WCHAR beforeunloadW[] = {'b','e','f','o','r','e','u','n','l','o','a','d',0};
static const WCHAR onbeforeunloadW[] = {'o','n','b','e','f','o','r','e','u','n','l','o','a','d',0};
@@ -160,6 +163,8 @@ typedef struct {
#define EVENT_HASDEFAULTHANDLERS 0x0020
static const event_info_t event_info[] = {
+ {abortW, onabortW, EVENTT_NONE, DISPID_EVMETH_ONABORT,
+ EVENT_NODEHANDLER},
{beforeunloadW, onbeforeunloadW, EVENTT_NONE, DISPID_EVMETH_ONBEFOREUNLOAD,
EVENT_DEFAULTLISTENER|EVENT_FORWARDBODY},
{blurW, onblurW, EVENTT_HTML, DISPID_EVMETH_ONBLUR,
@@ -216,7 +221,7 @@ static const event_info_t event_info[] = {
EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE}
};
-static const eventid_t node_handled_list[] = { EVENTID_ERROR, EVENTID_LOAD };
+static const eventid_t node_handled_list[] = { EVENTID_ABORT, EVENTID_ERROR, EVENTID_LOAD };
eventid_t str_to_eid(LPCWSTR str)
{
diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h
index 174d2f79ada..8aa8ed1c735 100644
--- a/dlls/mshtml/htmlevent.h
+++ b/dlls/mshtml/htmlevent.h
@@ -17,6 +17,7 @@
*/
typedef enum {
+ EVENTID_ABORT,
EVENTID_BEFOREUNLOAD,
EVENTID_BLUR,
EVENTID_CHANGE,
diff --git a/dlls/mshtml/htmlimg.c b/dlls/mshtml/htmlimg.c
index bc6ec801abf..4ca02fc9ce5 100644
--- a/dlls/mshtml/htmlimg.c
+++ b/dlls/mshtml/htmlimg.c
@@ -429,15 +429,19 @@ static HRESULT WINAPI HTMLImgElement_get_onerror(IHTMLImgElement *iface, VARIANT
static HRESULT WINAPI HTMLImgElement_put_onabort(IHTMLImgElement *iface, VARIANT v)
{
HTMLImgElement *This = impl_from_IHTMLImgElement(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+
+ TRACE("(%p)->()\n", This);
+
+ return set_node_event(&This->element.node, EVENTID_ABORT, &v);
}
static HRESULT WINAPI HTMLImgElement_get_onabort(IHTMLImgElement *iface, VARIANT *p)
{
HTMLImgElement *This = impl_from_IHTMLImgElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_node_event(&This->element.node, EVENTID_ABORT, p);
}
static HRESULT WINAPI HTMLImgElement_put_name(IHTMLImgElement *iface, BSTR v)