在搜索问题时,我发现如何仅使用 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/