搜索问题时,我发现了如何仅使用Jquery测试浏览器事件。但是我没有用。
如何使用Javascript(NOT Jquery)触发某些事件?
我有一个简单的html表单和一个带有'onclick'事件的按钮。
我必须模拟click事件,以便可以在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上工作,而不能与Jasmine一起用于node.js。
最佳答案
模拟“点击”事件:
var event = new Event("click");
element.dispatchEvent(event);