我想模拟点击GMail COMPOSE按钮,使用JS而不使用JQuery。
这是按钮:
<div class="T-I J-J5-Ji T-I-KE L3" role="button" tabindex="0" gh="cm"
style="-webkit-user-select: none;">COMPOSE</div>
这是我的js:
var element = document.getElementsByClassName('T-I-KE')[0];
element.click();
结果:所有浏览器中都有undefined
图片:http://i.imgur.com/4IX9DZX.png
已经尝试过:
var event = document.createEvent("MouseEvent");
event.initEvent("click",true,true);
var element=document.getElementsByClassName("T-I-KE")[0];
element.dispatchEvent(event);
结果:true
。但没有任何反应。
答案 0 :(得分:7)
两天后我终于得到了答案!
该按钮侦听mouseDown和mouseUP事件。 工作代码:
var down = new MouseEvent('mousedown');
var up = new MouseEvent('mouseup');
var elem = document.getElementsByClassName("T-I-KE")[0];
elem.dispatchEvent(down);
elem.dispatchEvent(up);
答案 1 :(得分:-1)
函数getElementsByClassName(classString)
将返回元素,其类恰好是传递给它的字符串。尝试使用querySelector,就像这样
document.querySelector(".T-I-KE");
这将返回类T-I-KE
的第一个元素。如果您想要该类的所有元素,请调用函数querySelectorAll
而不是