无法使用jQuery触发mousedown事件

8

我想在http://translate.google.com 中使用jquery模拟点击事件。为此,我使用以下代码加载了jquery文件:

var script = document.createElement("script");
script.src = "http://code.jquery.com/jquery-1.10.1.min.js";
document.body.appendChild(script);

然后我尝试通过选择器模拟对一个元素的点击,代码如下:
jQuery(".goog-inline-block.goog-flat-menu-button-caption").trigger("mousedown")

我尝试了使用点击事件而不是鼠标按下事件:
jQuery(".goog-inline-block.goog-flat-menu-button-caption").trigger("click")

这些方法都没有手动点击div的效果,也就是打开一个新的div。我附上了所需行为的截图。

点击状态

jQuery不起作用的原因是什么?或者我如何以其他方式模拟这种效果?

编辑:添加jQuery似乎成功了,因为我可以使用jQuery方法选择元素并更改它们的内容等。


2
我不确定我理解了 - 你是想使用jQuery触发第三方网站上的点击吗? - Rory McCrossan
1
我认为@RoryMcCrossan是正确的,你是在尝试获取一个iframe吗? - Praveen
不,我正在尝试使用Chrome开发者工具。 - Behlül
1
@Behlül,你能否提供更多关于“我正在尝试使用Chrome开发者工具”的细节吗? - Praveen
1
@Archer 在问题中的第一个代码片段是用于将jQuery添加到页面中。实际上,它确实添加了jQuery,您可以使用jQuery方法进行选择,并且可以更改html元素的内容等等,但由于某种原因,jQuery的事件触发机制无法正常工作。 - Behlül
显示剩余6条评论
1个回答

12
创建一个 MouseEvent 对象并将其派发到元素上,代码如下:
var e1 = document.createEvent("MouseEvents");
e1.initMouseEvent("mousedown", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
jQuery('#gt-sl-gms')[0].dispatchEvent(e1)

看起来 jQuery 的事件机制使用了不同的调度系统,因为它无法触发监听函数,虽然我没有确认这个信息。


这在IE 9中不起作用!!有没有关于跨浏览器解决方案的想法? - bhavya_w

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接