用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
。但是没有任何反应。
函数 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);
我想在没有 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
。但是没有任何反应。
函数 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);