用 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 按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何通过Autoit来模拟点击网页某个位置

点击TR行,用js实现删除,怎么实现

VB如何模拟鼠标点击网页按钮?

用delphi获取网页元素(按钮)然后模拟点击 你的这个问题是怎么解决的?麻烦详细的写一下

jQuery 怎么实现模拟鼠标点击效果,要点击的位置是用JS调用的,无法得到被点击标签的ID

php 中 JS用点击一个按钮出现一个图片改怎么实现。