emulate-key-in-browser
Version:
emulate browsers reactions on special keys
35 lines (34 loc) • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.emulateMouse = void 0;
var emulateMouse;
(function (emulateMouse) {
emulateMouse.hover = triggerMouseover;
})(emulateMouse = exports.emulateMouse || (exports.emulateMouse = {}));
function triggerMouseover(element) {
var offsetBox = getOffsetBox(element);
var clientX = offsetBox.left + Math.floor(offsetBox.width / 2);
var clientY = offsetBox.top + Math.floor(offsetBox.height / 2);
return element.dispatchEvent(new MouseEvent('mouseover', { clientX: clientX, clientY: clientY, button: 0, buttons: 0 }));
}
function getOffsetBox(element) {
var pos = getOffsetPosition(element);
var left = pos.left;
var top = pos.top;
var width = element.offsetWidth;
var height = element.offsetHeight;
var right = left + width;
var bottom = top + height;
return { top: top, right: right, bottom: bottom, left: left, width: width, height: height };
}
function getOffsetPosition(element) {
var left = element.offsetLeft;
var top = element.offsetTop;
var parent = element.offsetParent;
if (parent instanceof HTMLElement) {
var parentPos = getOffsetPosition(parent);
left += parentPos.left;
top += parentPos.top;
}
return { left: left, top: top };
}