javascript - 如何使用清晰的 native Javascript 测试浏览器事件 - 单击、鼠标悬停等?

标签 javascript node.js jasmine

在搜索问题时,我发现如何仅使用 Jquery 测试浏览器事件。但我没有使用它。

如何使用 Javascript(不是 Jquery)触发某些事件?

我有一个简单的 html 表单和一个带有“onclick”事件的按钮。 我必须模拟点击事件,这样我就可以在 Jasmine 中测试它。

我怎样才能做到这一点?

附注我找到了一些解决方案:

function fireClick(node){
    if ( document.createEvent ) {
        var evt = document.createEvent('MouseEvents');
        evt.initEvent('click', true, false);
        node.dispatchEvent(evt);
    } else if( document.createEventObject ) {
        node.fireEvent('onclick') ;
    } else if (typeof node.onclick == 'function' ) {
        node.onclick();
    }
}

但它仅适用于 Jasmine 独立版,不适用于 Node.js 的 Jasmine。

最佳答案

模拟“点击”事件:

 var event = new Event("click");
 element.dispatchEvent(event);

关于javascript - 如何使用清晰的 native Javascript 测试浏览器事件 - 单击、鼠标悬停等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46848179/

相关文章:

javascript - 使用 splice(0) 复制数组

javascript - 将具有特定类别的 div 移动到顶部

javascript - 如何从javascript中的child_process.exec获取返回值?

javascript - Express.js 文件上传

javascript - 什么是真正的单元测试?

javascript - Qt QWEBview JavaScript 回调

javascript - sessionStorage 登录变量的 Angular 路由解析

python - 如何运行子进程命令以在后台 Python 中启动 nodejs 服务器

angularjs - 在 Visual Studio 2013 中使用 jasmine 和 chutzpah 进行 angularjs 单元测试不起作用

javascript - 尝试使用 jasmine 和 angular 时出错