美文网首页
dispatchEvent 模拟相对真实的click事件

dispatchEvent 模拟相对真实的click事件

作者: Ray_afab | 来源:发表于2020-07-20 10:51 被阅读0次

screenX 全局X位置 会把分屏算上和地址栏
clientX 点击的可见区域里的位置 不会算上分屏 都是点击距离 都是相对页面
LayerY 返回已定位的元素的 只读 会把滚动算上 不会算分屏
offsetX 在元素里的位置
pageY 会把滚动算上 不算分屏 只读
someElement.offsetTop 父元素的距离
document.querySelector("#a").getBoundingClientRect().top 到窗口顶部的距离
为啥说是相对真实呢 isTrusted 是不可串改的 只有让安卓强行替换进行判断的变量

function getEventObj(dom){
    var div_height = dom.offsetHeight
    var div_width = dom.offsetWidth
    var random_num = Math.random();
    var dom_2_window_top = dom.getBoundingClientRect().top;
    var dom_2_window_left = dom.getBoundingClientRect().left;
    // var scroll_top = document.querySelector("html").scrollTop;
    var event_obj = {
        clientX: dom_2_window_left + div_width * random_num,
        clientY: dom_2_window_top + div_height * random_num,
        offsetX: div_width * random_num,
        offsetY: div_height * random_num,
        screenX: dom_2_window_left + div_width * random_num,
        screenY: dom_2_window_top + div_height * random_num,
        altKey: true
    }
    return event_obj
}

var dom = document.getElementById('a');
var events = new MouseEvent("click", getEventObj(dom));
dom.dispatchEvent(events);

相关文章

网友评论

      本文标题:dispatchEvent 模拟相对真实的click事件

      本文链接:https://www.haomeiwen.com/subject/jnhekktx.html