用 JS 模拟点击 GMail div 按钮
Posted
技术标签:
【中文标题】用 JS 模拟点击 GMail div 按钮【英文标题】:Simulate click on GMail div button with JS 【发布时间】:2015-04-13 04:28:11 【问题描述】:我想在没有 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
【问题讨论】:
试试这个:***.com/a/11765093/4506790 不工作。返回真。但什么也没有发生。结果图片:i.imgur.com/pwVqukP.png 我发现这篇文章***.com/a/52549234 对我有用! 【参考方案1】:两天后我终于得到了答案!
那个按钮监听 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);
【讨论】:
请参阅***.com/questions/10213703/… 了解如何监控事件——它会为您省去很多麻烦:)。 这适用于某些按钮(如“撰写”或“更多”),但对其他按钮(如右上角的“设置”)有任何影响。经过几个小时的监控事件,我放弃了。任何人都可以通过编程方式点击“设置”吗?【参考方案2】:函数getElementsByClassName(classString)
将返回与您传递给它的字符串完全相同的类的元素。尝试使用querySelector,像这样
document.querySelector(".T-I-KE");
这将返回类T-I-KE
的第一个元素。如果您想要该类的所有元素,请改为调用函数querySelectorAll
【讨论】:
我没有选择按钮的问题。我无法模拟点击它。这是您的示例:i.imgur.com/riFnz1o.png 结果相同。以上是关于用 JS 模拟点击 GMail div 按钮的主要内容,如果未能解决你的问题,请参考以下文章
用delphi获取网页元素(按钮)然后模拟点击 你的这个问题是怎么解决的?麻烦详细的写一下