通过按钮,我可以调用click()
方法来生成点击。然而,DIV 并非在所有浏览器上都具有此方法。但我可以将点击事件侦听器附加到它们(通过设置.onclick="..."
或添加事件监听器)。
有什么方法可以让我以编程方式“合成”对此类元素的点击,但是不使用 jQuery?理想情况下,这不依赖于注册侦听器的特定方式(因此只需调用eval(div.onclick)
对我不起作用),并且适用于所有现代浏览器。
(出于好奇,我需要这个来进行自动化测试,而不是欺骗用户。)
我最近在我的库中编写了一个函数来执行此操作,可以在 GitHub 存储库中找到它here https://github.com/Wolfy87/Spark/blob/master/src/trigger.js.
它是完全跨浏览器的,并在选择器引擎返回的元素上触发指定的事件。我相信您能够从中提取您需要的代码。
如果没有,这就是您所需要的。将元素替换为元素。并输入事件类型,在本例中,click
.
// Check for createEventObject
if(document.createEventObject){
// Trigger for Internet Explorer
trigger = document.createEventObject();
element.fireEvent('on' + type, trigger);
}
else {
// Trigger for the good browsers
trigger = document.createEvent('HTMLEvents');
trigger.initEvent(type, true, true);
element.dispatchEvent(trigger);
}
这是一个示例实现。
function simulateEvent(element, type) {
// Check for createEventObject
if(document.createEventObject){
// Trigger for Internet Explorer
trigger = document.createEventObject();
element.fireEvent('on' + type, trigger);
}
else {
// Trigger for the good browsers
trigger = document.createEvent('HTMLEvents');
trigger.initEvent(type, true, true);
element.dispatchEvent(trigger);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)