栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用JavaScript模拟鼠标单击?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用JavaScript模拟鼠标单击?

(修改后的版本使之无需prototype.js即可工作)

function simulate(element, eventName){    var options = extend(defaultOptions, arguments[2] || {});    var oEvent, eventType = null;    for (var name in eventMatchers)    {        if (eventMatchers[name].test(eventName)) { eventType = name; break; }    }    if (!eventType)        throw new SyntaxError('only HTMLEvents and MouseEvents interfaces are supported');    if (document.createEvent)    {        oEvent = document.createEvent(eventType);        if (eventType == 'HTMLEvents')        { oEvent.initEvent(eventName, options.bubbles, options.cancelable);        }        else        { oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView, options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element);        }        element.dispatchEvent(oEvent);    }    else    {        options.clientX = options.pointerX;        options.clientY = options.pointerY;        var evt = document.createEventObject();        oEvent = extend(evt, options);        element.fireEvent('on' + eventName, oEvent);    }    return element;}function extend(destination, source) {    for (var property in source)      destination[property] = source[property];    return destination;}var eventMatchers = {    'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,    'MouseEvents': /^(?:click|dblclick|mouse(?:down|up|over|move|out))$/}var defaultOptions = {    pointerX: 0,    pointerY: 0,    button: 0,    ctrlKey: false,    altKey: false,    shiftKey: false,    metaKey: false,    bubbles: true,    cancelable: true}

您可以像这样使用它:

simulate(document.getElementById("btn"), "click");

请注意,作为第三个参数,您可以传入’options’。您未指定的选项取自defaultOptions(请参见脚本底部)。因此,例如,如果您想指定鼠标坐标,则可以执行以下操作:

simulate(document.getElementById("btn"), "click", { pointerX: 123, pointerY: 321 })

您可以使用类似的方法来覆盖其他默认选项。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/442066.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号