livereload-js
Version:
LiveReload JS client - auto reload browser on changes
38 lines (31 loc) • 1.05 kB
JavaScript
const CustomEvents = {
bind (element, eventName, handler) {
if (element.addEventListener) {
return element.addEventListener(eventName, handler, false);
}
if (element.attachEvent) {
element[eventName] = 1;
return element.attachEvent('onpropertychange', function (event) {
if (event.propertyName === eventName) {
return handler();
}
});
}
throw new Error(`Attempt to attach custom event ${eventName} to something which isn't a DOMElement`);
},
fire (element, eventName) {
if (element.addEventListener) {
const event = document.createEvent('HTMLEvents');
event.initEvent(eventName, true, true);
return document.dispatchEvent(event);
} else if (element.attachEvent) {
if (element[eventName]) {
return element[eventName]++;
}
} else {
throw new Error(`Attempt to fire custom event ${eventName} on something which isn't a DOMElement`);
}
}
};
exports.bind = CustomEvents.bind;
exports.fire = CustomEvents.fire;