用JS模拟点击GMail div按钮

Simulate click on GMail div button with JS

我想在没有 JQuery 的情况下使用 JS 模拟点击 GMail COMPOSE 按钮。

这是按钮:

<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。但是没有任何反应。

图片:http://i.imgur.com/pwVqukP.png

函数 getElementsByClassName(classString) 将 return 具有您传递给它的字符串的 class 的元素。尝试使用 querySelector,像这样

document.querySelector(".T-I-KE");

那将return第一个元素与classT-I-KE。如果你想要 class 的所有元素,请调用函数 querySelectorAll 而不是

两天后终于有答案了!

该按钮监听 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);